Nanger 发表于 2024-3-21 10:58:49

我串口发送时用DMA,接收数据时不用 DMA,这样可以么

Nanger 发表于 2024-3-21 11:54:58

1

本帖最后由 Nanger 于 2024-3-21 11:56 编辑

1

创隆科技 发表于 2024-5-14 01:02:48

我只想问一句,普通方法发送数据与DMA发送数据
时间差多少,串口实时性应用还是差好多,
例如30个字节数据发送一次,接受一次,满足10毫秒一次,能做到吗

tzz1983 发表于 2024-5-14 07:51:00

创隆科技 发表于 2024-5-14 01:02
我只想问一句,普通方法发送数据与DMA发送数据
时间差多少,串口实时性应用还是差好多,
例如30个字节数据 ...

当波特率为115200时, 1毫秒大约可以收发11字节,你自己算吧

小坤 发表于 2024-6-24 11:41:57

tzz1983 发表于 2024-5-14 07:51
当波特率为115200时, 1毫秒大约可以收发11字节,你自己算吧
感觉我的编程思路都落伍了,为了通用都是封装一个应用的串口中断发送函数,方便后续换平台。像这些DMA都没用过

lezjin 发表于 2024-8-3 09:07:08

本帖最后由 lezjin 于 2024-8-3 09:08 编辑

你好,可以请教下吗,

我用8H准备重写一下串口2的代码,至今还没有用过OS,所以这两行代码没有看明白作用,另外是不是不加也可以。
32G的代码我看楼主只是判断完成字节寄存器高8位,不判断低八位是否不同?
我参考了一下在8H中判断两次读取结果是否相同,后来仔细想了一下,这两行代码连续执行,应该是相等的,是不是直接读取寄存器就可以。

tzz1983 发表于 2024-8-3 09:17:56

lezjin 发表于 2024-8-3 09:07
你好,可以请教下吗,

我用8H准备重写一下串口2的代码,至今还没有用过OS,所以这两行代码没有看明白作用 ...
8H 好像只有一字节,没有DONEH ,

我那个代码是为了判断读低字节时高字节有没有发生变化,即避免一个16位分两次读可能产生的非元子操作错误, 至于低字节, 无所谓, 无非是本次和下次查询到

lezjin 发表于 2024-8-3 09:35:40

tzz1983 发表于 2024-8-3 09:17
8H 好像只有一字节,没有DONEH ,

我那个代码是为了判断读低字节时高字节有没有发生变化,即避免一个1 ...

了解了,谢谢,那8H的直接读取这个寄存器应该是可以的

lezjin 发表于 2024-8-7 09:23:27

原来_testbit_是个函数,这下明白了。

#defineOS_ENTER_CRITICAL()    {cpu_sr=((!_testbit_(EA))?0X00:0X80);}

请教下这里用逻辑非判断,改成正逻辑是不是会速度快些。_testbit_(EA)?0X80:0X00 ;

amd2600amd 发表于 2024-9-27 23:09:45

谢谢可以请教下收到420个字节再发怎样改吗
页: 1 2 3 [4] 5 6
查看完整版本: 4组串口UART使用DMA收发 @32G系列,易用,高效,稳定 !精品实战代码