搜索
bottom↓
回复: 9

modbus stm32实时响应程序求助

[复制链接]

出0入0汤圆

发表于 2019-4-12 15:55:10 | 显示全部楼层 |阅读模式
本帖最后由 hy2515131 于 2019-4-13 09:29 编辑

更正错误
目前使用一款别人开发的ADC采集系统,modbus-RTU通信实时采集ADC的数据,57600波特率下,采集系统收到modbus指令后间隔280us(实测是215us)回传modbus指令,回传的指令还是经过滤波处理的ADC数据,求modbus实时通信算法。
STM32型号不限制,可以使用F1 F4系列都可以。
自己尝试使用STM32F429IGT6移植了freemodbus,也可以正常通信,不过实时性不高,用的是查询模式,
在while大循环中增加延时之后,发送指令和接收指令之间的时间变化明显,delay延时1秒就导致发送和接收的时间超过1秒,对于实时系统来说这是完全不能接受的。

freemodbus程序结构如下
while (1)
{
Delayms();
ADCAcquie
//FreeMODBUS不断查询
eMBPoll();
}
想求一个实时性强的modbus stm32通信算法,不限于freemodbus,使用自己写的modbus程序也可以

阿莫论坛20周年了!感谢大家的支持与爱护!!

阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)

出0入85汤圆

发表于 2019-4-12 16:24:37 | 显示全部楼层
大循环中增加1秒延时?没见过这么写程序的。。。

出0入0汤圆

发表于 2019-4-12 16:43:16 | 显示全部楼层
暴力的方法是把eMBPoll()直接放在3.5T定时中断里,就没有延时了。正常的做法是缩短主循环的周期:)

出0入0汤圆

 楼主| 发表于 2019-4-12 16:47:43 | 显示全部楼层
ZXF_CUG 发表于 2019-4-12 16:24
大循环中增加1秒延时?没见过这么写程序的。。。

延时是模拟刷屏 按键检测等程序

出0入0汤圆

 楼主| 发表于 2019-4-12 16:48:31 | 显示全部楼层
zhugean 发表于 2019-4-12 16:43
暴力的方法是把eMBPoll()直接放在3.5T定时中断里,就没有延时了。正常的做法是缩短主循环的周期:) ...

这个想法比较好,不过这样会不会影响主循环的ADC采集

出0入0汤圆

发表于 2019-4-12 16:52:07 | 显示全部楼层
串口接收时复位并启动某个定时器,用于检测帧结束,并在这个定时中断里处理数据,然后用DMA发送。

出0入0汤圆

发表于 2019-4-12 17:01:30 来自手机 | 显示全部楼层
定时中断或者跑rtos都是常规方法了,很简单

出0入0汤圆

 楼主| 发表于 2019-4-13 09:30:49 | 显示全部楼层
lcw_swust 发表于 2019-4-12 16:52
串口接收时复位并启动某个定时器,用于检测帧结束,并在这个定时中断里处理数据,然后用DMA发送。 ...

3.5T定时器产生中断,在中断服务程序里面发送串口数据,这样会不会影响下一次接收串口数据?

出0入0汤圆

发表于 2019-4-13 09:46:28 | 显示全部楼层
本帖最后由 lcw_swust 于 2019-4-13 09:58 编辑
hy2515131 发表于 2019-4-13 09:30
3.5T定时器产生中断,在中断服务程序里面发送串口数据,这样会不会影响下一次接收串口数据? ...


将串口中断、3.5T定时器优先级设高些,可打断低优先级中断的那种。
为避免处理时间过长,可以在3.5T定时器中断里启动另一个低优先级定时器,在低优先级定时器里处理和发送数据。
补充一下: 串口接收数据也可以用DMA配合空闲中断,可减少CPU占用。

出0入50汤圆

发表于 2019-4-13 10:25:03 | 显示全部楼层
用RTOS分两个任务跑,响应很快
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-16 23:35

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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