проблема была в невыровненых данных
была строчка sensor->sensROM = *(uint64_t *)(ROM); и она требует чтобы указатель ROM был выровнен по 4 байта Но он не выровнен, потому что шаг модбас структуры 2 байта и он оказывается смещен на 2 байта вместо 4 Добавил резервные 2 байта, чтобы адрес быо кратен 4 байтам
This commit is contained in:
@@ -54,7 +54,8 @@ typedef struct //MB_DataInRegsTypeDef
|
||||
{
|
||||
uint16_t SensTemperature[DS18B20_DEVICE_AMOUNT];
|
||||
MB_SensorParamsTypeDef Response;
|
||||
uint16_t AllROMs[DS18B20_DEVICE_AMOUNT][4];
|
||||
uint16_t reserved;
|
||||
uint16_t AllROMs[DS18B20_DEVICE_AMOUNT][4];
|
||||
}MB_DataInRegsTypeDef;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user