проблема была в невыровненых данных

была строчка
  sensor->sensROM = *(uint64_t *)(ROM);

и она требует чтобы указатель ROM был выровнен по 4 байта

Но он не выровнен, потому что шаг модбас структуры 2 байта и он оказывается смещен на 2 байта вместо 4

Добавил резервные 2 байта, чтобы адрес быо кратен 4 байтам
This commit is contained in:
2025-03-05 13:04:40 +03:00
parent 54c8a663e4
commit 1633a224f3
2 changed files with 38 additions and 52 deletions

View File

@@ -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;