有些項目需要同時既做主機讀取傳感從機器的數據,然後再做從機整合數據與上層主控單元進行通訊,這時候就需要程序中即存在主機,又存在從機。這裏就做下測試,主機用串口2,從機用串口3,分別與對應的上位機通訊,便可以進行仿真通訊驗證。
一、RT-Thread Studio添加freemodbus主機和從機
1、配置RT-Thread Settings
添加modbus軟件包後,然後保存配置如下
2.開啓board.h宏定義
3.根據需求配置modbus通訊參數
(1)modbus主機部分的初始化
(2)modbus從機部分的初始化
4.驗證
modbus主機用於uart2,與上位機從機相連接,19200,8N1;
modbus從機用於uart3,與上位機主機相連接,19200,8N1;
打印使用uart1,115200,8N1。
(1)modbus主機驗證
前幾個寄存器由主機寫入從機,然後主機再讀回來,程序中打印過程中加了延時,會存在延時顯示的情況,但驗證後主機寫指令、讀指令成功;然後從機手動改了後面3個寄存器,主機也讀到了數據,也驗證讀成功。
(2)modbus從機驗證
666、777是程序中給這兩個寄存器初始化賦值的數據,然後被主機讀取成功;888、999是上位機主機手動寫上的數據,然後從機程序接收到數據通過串口1打印了出來。
串口2使用主機,串口3使用從機,通訊成功。