有关modbus主机的程序,比较少见。主要原因是,其比较简单。
自己调试了2个版本的程序,供大家参考。
版本1: 常规的通过定时器,实现对从机数据的接收。
版本2: 取消定时器,通过DMA对每帧数据的接收。
从机:可以使用modbus slave这个工具进行设置。
下载地址为:
https://download.youkuaiyun.com/download/sym_simon/12505453
版本1:部分代码如下:
1.主函数

2.串口初始化





3.命令发送函数

4.串口中断发送、接收函数



5.定时器中断函数(3.5T)


6.检测初始函数

版本2:和版本1不同的地方,就是没有用定时器来做3.5T的判断。
1.主函数

2.中断接收函数(这一点非常不同)

其余部分,在源码中全部都有了。
参考的博文,
http://www.eemaker.com/modbus-host.html 讲状态机,框架比较好。
https://blog.youkuaiyun.com/hola_ya/article/details/81560204 讲DMA的配置
本文分享了STM32F103上实现Modbus主机功能的两种程序,分别基于USART2配合TIMER和USART2配合DMA。提供了程序代码片段,并推荐了用于模拟从机的modbus slave工具。还引用了两篇参考文章,一篇介绍了状态机框架,另一篇讲解了DMA配置。
3457





