一、基本概念
Modbus协议是全球最早用于工业现场的总线规约,许多工业设备,包括PLC,DCS,智能仪表等都在使用此协议作为他们之间的通信标准。Modbus 协议是一个请求/应答协议,发起请求的为Master(client),响应请求的为slave(server)。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一个控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。
二、调试工具
如果你做的是modbus master,可以使用modbus slave工具模拟从设备来调试,该工具下载地址:http://www.cr173.com/soft/21410.html
如果你做的是modbus slave,可以使用modbus poll工具模拟主设备来调试,该工具下载地址:http://www.cr173.com/soft/21405.html
以上两个工具的使用方法,可以参考此博客:
https://blog.csdn.net/byxdaz/article/details/77979114
三、移植到STM32单片机
3.1 FreeModBus Master工程
3.1.1 开发环境
STM32L475 + STM32CubeMX + KEIL5
3.1.2 工程说明
使用STM32L475单片机的uart1作为调试串口,uart2外接RS485芯片作为modbus通讯串口,PC3引脚用来控制RS485芯片的方向。下载本工程后,只需根据你的硬件,改变上述接口,即可正常工作!本工程实现了MODBUS MASTER RTU的功能
3.1.3 下载地址
https://u20529624.ctfile.com/fs/20529624-383190905
3.2 FreeModBus Slave工程
3.2.1 开发环境
STM32L071 + STM32Cube + KEIL5