|
如題
0.png (40.03 KB, 下載次數(shù): 68)
下載附件
2018-12-14 01:11 上傳
1,例程介紹:
由于freemodbus未提供基于STM32平臺的例程,本例程旨在讓更多電子愛好更快入門STM32平臺上freemodbus的移植,本例程所以使用的硬件平臺為STM32F429DISCOVER開發(fā)板,軟件平臺為Keil+STM32_HAL庫+STM32CUBEMX,modbus調(diào)試軟件為modbus poll,在使用modbus poll調(diào)試時可能會出現(xiàn)寄存器地址錯誤的情況,如何解決見下文,如果想移植到其他STM32硬件平臺還需參見其他網(wǎng)址(見下文)。
2,如何使用本例程:
如果使用是使用的和作者相同的硬件平臺則可以直接打開Keil編譯下載運行,其他硬件平臺還需簡單修改。
本例程使用的文件結(jié)構(gòu)為STM32CUBEMX創(chuàng)建的文件結(jié)構(gòu),層次結(jié)構(gòu)清晰,相對官方,代碼注釋風(fēng)格為doxygen風(fēng)格,直接運行doxygen生成文檔可能會出錯(作者的注釋不規(guī)范)
由于本例程使用STM32CUBEMX自動創(chuàng)建底層,有好多驅(qū)動沒有刪減,在閱讀時大可不理會,也不會影響freemodbus的移植。
由于標(biāo)準(zhǔn)的modbus協(xié)議的寄存器地址是從1開始的,不會出現(xiàn)0,所以再用modbus poll進(jìn)行調(diào)試時可能會出現(xiàn)寄存器地址錯誤,解決方案:1,在modbus poll中將為0的寄存器+1
2,將源代碼mbfuncinput.c文件中第97行usRegAddress++注釋掉
3,免責(zé)聲明:
本例程僅供學(xué)習(xí)使用,由于作者也是剛剛接觸modbus,所以在注釋時難免出現(xiàn)錯誤忘學(xué)習(xí)者理解,本例程無法直接進(jìn)行項目開發(fā),出現(xiàn)任何問題與作者無關(guān)因為實際的項目開發(fā)還需根據(jù)自己的需要進(jìn)行相關(guān)的裁剪和功能完善,本例程只實現(xiàn)了讀取輸入寄存器的功能,需要其他功能另請參見官方示例
本例程準(zhǔn)守STM32和freemodbus相關(guān)協(xié)議開源協(xié)議,附帶開源協(xié)議副本
全部資料51hei下載地址:
FreeModbus從機基于STM32.7z
(3.5 MB, 下載次數(shù): 319)
2018-12-14 01:12 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|