如题
1,例程介绍:
由于freemodbus未提供基于STM32平台的例程,本例程旨在让更多电子爱好更快入门STM32平台上freemodbus的移植,本例程所以使用的硬件平台为STM32F429DISCOVER开发板,软件平台为Keil+STM32_HAL库+STM32CUBEMX,modbus调试软件为modbus poll,在使用modbus poll调试时可能会出现寄存器地址错误的情况,如何解决见下文,如果想移植到其他STM32硬件平台还需参见其他网址(见下文)。
2,如何使用本例程:
如果使用是使用的和作者相同的硬件平台则可以直接打开Keil编译下载运行,其他硬件平台还需简单修改。
本例程使用的文件结构为STM32CUBEMX创建的文件结构,层次结构清晰,相对官方,代码注释风格为doxygen风格,直接运行doxygen生成文档可能会出错(作者的注释不规范)
由于本例程使用STM32CUBEMX自动创建底层,有好多驱动没有删减,在阅读时大可不理会,也不会影响freemodbus的移植。
由于标准的modbus协议的寄存器地址是从1开始的,不会出现0,所以再用modbus poll进行调试时可能会出现寄存器地址错误,解决方案:1,在modbus poll中将为0的寄存器+1
2,将源代码mbfuncinput.c文件中第97行usRegAddress++注释掉
3,免责声明:
本例程仅供学习使用,由于作者也是刚刚接触modbus,所以在注释时难免出现错误忘学习者理解,本例程无法直接进行项目开发,出现任何问题与作者无关因为实际的项目开发还需根据自己的需要进行相关的裁剪和功能完善,本例程只实现了读取输入寄存器的功能,需要其他功能另请参见官方示例
本例程准守STM32和freemodbus相关协议开源协议,附带开源协议副本
全部资料51hei下载地址:
FreeModbus从机基于STM32.7z
(3.5 MB, 下载次数: 319)
|