OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6181|回复: 9

求Modbus主站+DMA传输的实例

[复制链接]

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
发表于 2021-2-20 10:37:54 | 显示全部楼层 |阅读模式
30金钱
求Modbus主站+DMA传输的实例

我用的RS485通信,能有好的例子参考吗,我网上找了很多个版本的

定时器中断的,等等等等,能测试通过实用点的

试过没问题的话,我到时候会独自开一个分享帖,分享给大家,

而且分享我的调试过程,代码实现等等

最佳答案

查看完整内容[请看2#楼]

我自己根据自己的DMA DEMA 再配上 刘东君 的模板,写了一个,Modbus Master主机,加上了很多说明,这个版本的非常简单,没有官方Modbus模板那么复杂,挺适合新手移植的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2021-2-20 10:37:55 | 显示全部楼层
我自己根据自己的DMA DEMA  再配上  刘东君  的模板,写了一个,Modbus Master主机,加上了很多说明,这个版本的非常简单,没有官方Modbus模板那么复杂,挺适合新手移植的

Modbus_master_JJ.zip

3.59 MB, 下载次数: 354

回复

使用道具 举报

31

主题

158

帖子

0

精华

高级会员

Rank: 4

积分
738
金钱
738
注册时间
2020-4-30
在线时间
111 小时
发表于 2021-2-20 16:29:17 | 显示全部楼层
我之前上传过一个使用DMA idle中断的485 modbusRTU的例程 你可以看看
回复

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3448
金钱
3448
注册时间
2017-7-4
在线时间
869 小时
发表于 2021-2-20 17:28:31 | 显示全部楼层
Modbus是应用协议,与底层uart DMA关系不大。只需实现uart DMA即可。参考uart DMA收发:https://acuity.blog.csdn.net/article/details/108367512
回复

使用道具 举报

1

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2020-9-29
在线时间
36 小时
发表于 2021-4-10 11:28:15 | 显示全部楼层
笨鸟想飞 发表于 2021-2-20 10:37
我自己根据自己的DMA DEMA  再配上  刘东君  的模板,写了一个,Modbus Master主机,加上了很多说明,这个 ...

有从机的程序吗
回复

使用道具 举报

1

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2020-9-29
在线时间
36 小时
发表于 2021-4-10 11:29:09 | 显示全部楼层
笨鸟想飞 发表于 2021-2-20 10:37
我自己根据自己的DMA DEMA  再配上  刘东君  的模板,写了一个,Modbus Master主机,加上了很多说明,这个 ...

我想通过按键去读取从机的输入寄存器,再将数值赋值给主机上的屏幕
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2021-4-12 08:25:05 | 显示全部楼层

从机网上大把,你去刘东君  帖子,他那里自己也写了一个比较简单的,或者找 FreeModbus 这个东西是官方给出的从机模板,很多的
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2020-7-20
在线时间
10 小时
发表于 2021-4-15 10:49:58 | 显示全部楼层
D:\桌面\QQ截图20210415104757.png
这里为啥要有两个延时函数啊
QQ截图20210415104757.png
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
 楼主| 发表于 2021-4-16 09:35:19 | 显示全部楼层
wym111 发表于 2021-4-15 10:49
这里为啥要有两个延时函数啊

上面的延时是为了给系统有一定的缓冲时间(从机回传不一定每次很快回应),因为下面是判断是否有接收标志位,在数据流速率要求不高的时候,我喜欢给点延时,等一下从机,提高稳定性

下面的延时可以不要,那个延时用来测试的

我试过两个延时都不要,在高速传输的情况下,会出现宕机的情况
加几十ms的延时,会稳定些,你可以试试
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2020-7-20
在线时间
10 小时
发表于 2021-4-16 14:14:41 | 显示全部楼层
笨鸟想飞 发表于 2021-4-16 09:35
上面的延时是为了给系统有一定的缓冲时间(从机回传不一定每次很快回应),因为下面是判断是否有接收标志 ...

奥奥,懂了,谢谢大佬
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-7 10:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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