找回密码
 立即注册
楼主: 飞捷

DMA的串口通信疑问

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2023-12-20 08:53:04 | 显示全部楼层
飞*** 发表于 2023-12-19 22:16
我的方案大多是基于modbus rtu协议,对于串口可以通过DMA发送,这样响应提高好多,现在总是移值不成功, ...

我这里也是常用MODBUS,,但是我这里CPU的工作强度不太大,,每次串口接收发送的数据也不算多,所以目前还没有用上DMA,,之后估计要试一试。。不知道您现在主要在测试什么单片机?STC8H的 还是STC32G我这里还是常用C51编译的单片机,,,
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2023-12-20 08:58:04 | 显示全部楼层
我是用的串口接收中断加定时器作超时处理,包括STC8H实验箱里面的也是这个思路。如果你只是用MODBUS协议的这个DMA还是可以使用的,不用再作处理了
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:440
  • 最近打卡:2025-05-02 01:28:16
已绑定手机

40

主题

371

回帖

843

积分

高级会员

积分
843
发表于 2023-12-20 09:01:40 | 显示全部楼层
cofmilk 发表于 2023-12-20 08:53
我这里也是常用MODBUS,,但是我这里CPU的工作强度不太大,,每次串口接收发送的数据也不算多,所以目前 ...

从STC15F到STC8C到STC8G到STC32G一路移植过来
纸上得到终觉浅,绝知此事要躬行。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:440
  • 最近打卡:2025-05-02 01:28:16
已绑定手机

40

主题

371

回帖

843

积分

高级会员

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

怎么说呢,本来用DMA就是为了不用串口中断,现在为了超时判定,又得启用串口中断,那意义就不大了。
纸上得到终觉浅,绝知此事要躬行。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2023-12-20 09:11:15 | 显示全部楼层
飞*** 发表于 2023-12-20 09:03
怎么说呢,本来用DMA就是为了不用串口中断,现在为了超时判定,又得启用串口中断,那意义就不大了。 ...

同感,,但是在STC32G8K ?单片机有了硬件超时中断,,您可以看一看测试一下,,这里STC32用的是C251编译器 所以我们老板还没有更换这个片子的意愿,,所以我也没哟测试,,
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:440
  • 最近打卡:2025-05-02 01:28:16
已绑定手机

40

主题

371

回帖

843

积分

高级会员

积分
843
发表于 2023-12-20 09:19:01 | 显示全部楼层
cofmilk 发表于 2023-12-20 09:11
同感,,但是在STC32G8K ?单片机有了硬件超时中断,,您可以看一看测试一下,,这里STC32用的是C251编译 ...

如果要做就做兼容性更大的程序,如果8K有这功能,12K就没用,不到不得已,不会使用这个功能。
纸上得到终觉浅,绝知此事要躬行。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2023-12-20 09:27:57 | 显示全部楼层
飞*** 发表于 2023-12-20 09:19
如果要做就做兼容性更大的程序,如果8K有这功能,12K就没用,不到不得已,不会使用这个功能。 ...

哈哈,,我也是这么想的,,,现在我们公司用STC三款单片机,其中有一款比较老的,,STC15W单片机。这个单片机上没有一些新单片机的功能,为了兼容这个单片机,一些新的东西也都没有用上。基本上是STC15W上没有的东西,能不用就不用了,除非是必须要用,就做一下兼容。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2023-12-20 10:39:41 | 显示全部楼层
STC15W, 抗干扰的天花板,永恒的存在,除了 ADC 不够完美,STC15W能用,就保留着,定海神针
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:440
  • 最近打卡:2025-05-02 01:28:16
已绑定手机

40

主题

371

回帖

843

积分

高级会员

积分
843
发表于 2023-12-21 09:09:48 | 显示全部楼层
u8 xdata DmaBuffer[256];

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

截图202312210906056131.jpg
截图202312210908168660.jpg
纸上得到终觉浅,绝知此事要躬行。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2023-12-21 09:29:46 | 显示全部楼层
上网搜了一下,,,&加数组名的结果等同于 &数组名[0], 实际还是数组的其实地址0..0
截图202312210928305760.jpg
https://blog.csdn.net/loongkingwhat/article/details/78910921
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:13 , Processed in 0.145209 second(s), 103 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表