Мастер: коллбек вызывается и при таймауте

В коллбеке можно понять статус реквеста по hmodbus->RS_STATUS
This commit is contained in:
2025-11-05 16:36:44 +03:00
parent 5bbbbde3e6
commit 52143ce07c
4 changed files with 47 additions and 18 deletions

View File

@@ -123,12 +123,15 @@ ProjectRoot/
void callback_func(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modbus_msg)
{
// MB_RespGet_... Чтобы достать нужные данные из ответа
for(int addr = MODBUS_MSG.Addr; addr < MODBUS_MSG.Addr + MODBUS_MSG.Qnt; addr++)
if(hmodbus->RS_STATUS == RS_OK)
{
uint16_t value;
if(MB_RespGet_RegisterValue(&MODBUS_MSG, addr, &value))
for(int addr = MODBUS_MSG.Addr; addr < MODBUS_MSG.Addr + MODBUS_MSG.Qnt; addr++)
{
read_hold[i] = value;
uint16_t value;
if(MB_RespGet_RegisterValue(&MODBUS_MSG, addr, &value))
{
read_hold[i] = value;
}
}
}
}