Я пытаюсь реализовать протокол RTU ModBus через периферийное устройство UART с помощью платы STM32F4-Discovery.Как зарегистрировать адрес регистра Modbus с помощью C/C++
Я планирую реализовать функции Master и Slave с помощью 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