本资源提供了一份详细的STM32单片机Modbus-RTU通信协议源代码,包含详尽注释,便于学习与二次开发。
基于STM32单片机实现Modbus-RTU通讯规约的源代码包含详细注释,解释了通信数据类型及格式:信息传输采用异步方式,并以字节为单位进行。每个字节由8位二进制数组成。主机和从机之间传递的信息是10位的数据格式,其中包括:
- 起始位(1位)
- 数据位(8位)
- 停止位(1位)
帧的结构如下:
序号 | 定义
---|---
1 | 模块地址
2 | 功能代码
3,4 | 起始地址
5,6 | 数据长度
7...n+6 | 数据内容
n+7,n+8 | 校验码
说明:
- 后缀为“H”的数据表示16进制,例如:1AH;
- 后缀为“B”的数据是二进制格式,例如:11111111B。
- 没有后缀的数据默认为十进制。
每字节中的位顺序从低位到高位排列;帧中高字节在前低字节在后,校验码的高低字节也是相同规则排序。
通信过程:
波特率设置为9600bps,监控器和模块始终处于接收状态。当模块接收到所有字节时,会检查地址是否匹配本机地址;如果一致,则表示数据接收完成。
通讯信息传输过程中时间间隔遵循上述配置的波特率标准进行协调操作。