第一步获取FreeModbus1.6
直接从官网下载就能使用,里面有相应的Demo可以进行参考,链接如下:
FreeMODBUS Downloads - Embedded Expertshttps://www.embedded-experts.at/en/freemodbus-downloads/
获取之后解压得到以下文件:
这些文件的中主要就是用到demo和modbus这两个文件。
第二步:建立一个简单的工程模板,然后开始移植
这里选用的是野火stm32f407的工程模板,选用不同的内核配置大体一样,但一些细节部分不同。
将freemodbus-v1.6里面demo->BARE->port,将port整个文件夹直接复制进工程文件
将freemodbus-v1.6里面的demo->modbus,将modbus这个歌文件夹直接复制进工程文件
然后将这两个文件夹的c文件放入工程中
包含所用到的头文件:
tip:modbus中的ascii是可选项,在这里并不使用,所以不用添加相关的头文件以及c文件
第三步,编译,开始修改
刚移植的文件,编译后,通常会有很多报错。
Error:”port.h“,No such file or directory
出错原因:第二步没有包含port.h所在的文件夹
解决方法:直接包含进去即可,在编译
再次编译后3个错误,5个警告
跳过警告先,直接查看错误:
双击,可查看错误位置
这涉及到内联函数的一些东西,具体原因自行百度,只可意会不可言传,修改方式,简单粗暴,把内联函数的inline去掉,去掉后如下图
再次编译后,仍然发现有一个错误
检查后发现原来是mbascii.h的头文件没有包含,解决方法和第一个错误一样 。
一整体编译后发现错误直接飙升:解决了一个错误出现一堆错误,非常的经典
具体原因应该是有些函数没有定义或者某些c文件没有引用导致的
看见一堆eMBASCII什么初始化,接收,发送&#x