我正試圖通過使用STM32F4-Discovery Board的UART外設實現ModBus RTU協議。如何使用C/C++映射Modbus寄存器地址
我打算使用Modbus RTU實現主站和從站功能。
這裏是我的問題
我怎麼能在UART動我接收到的數據MODBUS和傳輸來自MODBUS層數據到UART,用C/C++,請提供一些代碼片斷,可以幫助我理解你的解釋。 (截至目前我正在考慮想出一些API的,請建議一些模式)
其次我怎麼能實現Modbus寄存器和線圈。我的意思是我如何定義ModBus應用手冊中指定的地址。請用代碼片段解釋我。下面我試圖實現。
/*Global Array, Structure and Variable Declarations*/
/* So to access Discrete_Output_Coils[2345]
the valid address to include in the protocol would be
so we have to access address 0x929 to read the
data.*/
const unsigned short int Discrete_Output_Coils[4999];
const unsigned short int Discrete_Input_Contacts[4999];
const unsigned short int Analog_Input_Register[4999];
const unsigned short int Anlog_output_Holding_Register[4999];
你的問題太寬泛。首先,從master *或* slave開始,但不能同時使用兩者。其次,閱讀Modbus規範。第三,從非常簡單的非常簡單的實現開始,您可以發送或接收幀,而不需要其他任何東西。如果您沒有基本的傳輸分揀機,嘗試考慮註冊實施毫無意義。 – user694733