移植Modbus TCP(一)

 熟悉Modbus RTU的各位猿友應該對Modbus TCP多多少少有些瞭解,咱們在公衆號裏也屢次介紹過,移植Modbus TCP,首先咱們要移植一個TCP協議棧將Mobdus數據在上面傳輸,而Lwip是著名的開源TCP/IP網絡協議棧,能夠移植到微控制器上,能夠裸機,也能夠支持操做系統,已經被移植到不少的產品上,因此咱們就選擇lwip,,而後按照Modbus TCP標準添加Modbus協議棧就能夠了,今天咱們先來看看lwip如何移植到STM32H743xxx上,咱們使用在freeRTOS下移植lwip,利用ST的固件庫。
微信

首先下載H7系列的包,並解壓網絡

能夠看到ST的SDK裏面對lwip有不少的例程,有帶RTOS的有不帶的,咱們以LwIP_UDPTCP_Echo_Server_Netconn_RTOS 爲例來移植,這個工程是基於freeRTOS的,打開這個工程工具

肯定編譯無誤後,就能夠動手移植了,首先要根據硬件原理圖修改初始化部分,包括時鐘,管腳,若是你的板子跟這個參考板很接近的話,那麼移植起來很簡單,看到原理圖跟網絡相關的硬件接口,能夠對應到MCU側。修改相應管腳初始化測試


除了修改管腳初始化外,網絡的中斷優先級根據項目須要可作修改,除過修改代碼的同時將註釋也一併修改,養成良好的習慣,固然這些硬件上初始化的更改也能夠經過ST的配置工具CubeMX直接更改從新生成工程而後編譯。spa

根據本身的實際更改IP地址,能夠支持DHCP,或者靜態IP地址操作系統

我這裏使用電腦和板子直接鏈接,使用默認IP地址,而後將電腦和板子的IP地址設到同一個網段。編譯無誤後,下載到板子,將電腦和板子鏈接起來,或者連入路由器,我這裏採用直聯,並將電腦設爲192.168.0.15,打開網絡調試助手,或者其餘支持TCP的工具均可以.net

選擇 TCP 客戶端,輸入板子IP地址 192.168.0.10 端口號7, 注意咱們在下節移植modbus的時候,端口號要更改成Mdobus專用的。這裏測試能夠不用改。輸入 1 2 3 4 5 6 7 8 9發送,能夠看到板子收到後發回來的收據。3d

好了,下次咱們會基於這個工程添加Modbus TCP協議棧。歡迎繼續關注。調試

本文分享自微信公衆號 - 嵌入式程序猿(InterruptISR)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。blog

相關文章
相關標籤/搜索