_奶咖君_ 发表于 2023-12-20 08:53:04

飞捷 发表于 2023-12-19 22:16
我的方案大多是基于modbus rtu协议,对于串口可以通过DMA发送,这样响应提高好多,现在总是移值不成功, ...

我这里也是常用MODBUS,,但是我这里CPU的工作强度不太大,,每次串口接收发送的数据也不算多,所以目前还没有用上DMA,,之后估计要试一试。。不知道您现在主要在测试什么单片机?STC8H的 还是STC32G我这里还是常用C51编译的单片机,,,

_奶咖君_ 发表于 2023-12-20 08:58:04

我是用的串口接收中断加定时器作超时处理,包括STC8H实验箱里面的也是这个思路。如果你只是用MODBUS协议的这个DMA还是可以使用的,不用再作处理了

飞捷 发表于 2023-12-20 09:01:40

cofmilk 发表于 2023-12-20 08:53
我这里也是常用MODBUS,,但是我这里CPU的工作强度不太大,,每次串口接收发送的数据也不算多,所以目前 ...

从STC15F到STC8C到STC8G到STC32G一路移植过来

飞捷 发表于 2023-12-20 09:03:48

cofmilk 发表于 2023-12-20 08:58
我是用的串口接收中断加定时器作超时处理,包括STC8H实验箱里面的也是这个思路。如果你只是用MODBUS协议的 ...

怎么说呢,本来用DMA就是为了不用串口中断,现在为了超时判定,又得启用串口中断,那意义就不大了。

_奶咖君_ 发表于 2023-12-20 09:11:15

飞捷 发表于 2023-12-20 09:03
怎么说呢,本来用DMA就是为了不用串口中断,现在为了超时判定,又得启用串口中断,那意义就不大了。 ...

{:4_168:}同感,,但是在STC32G8K ?单片机有了硬件超时中断,,您可以看一看测试一下,,这里STC32用的是C251编译器 所以我们老板还没有更换这个片子的意愿,,所以我也没哟测试,,

飞捷 发表于 2023-12-20 09:19:01

cofmilk 发表于 2023-12-20 09:11
同感,,但是在STC32G8K ?单片机有了硬件超时中断,,您可以看一看测试一下,,这里STC32用的是C251编译 ...

如果要做就做兼容性更大的程序,如果8K有这功能,12K就没用,不到不得已,不会使用这个功能。

_奶咖君_ 发表于 2023-12-20 09:27:57

飞捷 发表于 2023-12-20 09:19
如果要做就做兼容性更大的程序,如果8K有这功能,12K就没用,不到不得已,不会使用这个功能。 ...

哈哈,,我也是这么想的,,,现在我们公司用STC三款单片机,其中有一款比较老的,,STC15W单片机。这个单片机上没有一些新单片机的功能,为了兼容这个单片机,一些新的东西也都没有用上。基本上是STC15W上没有的东西,能不用就不用了,除非是必须要用,就做一下兼容。

神农鼎 发表于 2023-12-20 10:39:41

STC15W, 抗干扰的天花板,永恒的存在,除了 ADC 不够完美,STC15W能用,就保留着,定海神针

飞捷 发表于 2023-12-21 09:09:48

u8 xdata DmaBuffer;

u8 xdata TemBuffer;
在STC32G里面例程里的&是否不适合,DMABUFEER本身就是地址了,为何还要再用&取地址, 我对C语言也不熟练,这里是否写错了?

_奶咖君_ 发表于 2023-12-21 09:29:46

上网搜了一下,,,&加数组名的结果等同于 &数组名, 实际还是数组的其实地址0..0

https://blog.csdn.net/loongkingwhat/article/details/78910921
页: 1 2 [3] 4 5
查看完整版本: DMA的串口通信疑问