modbus poll 에서 뜬금없이 crc error로 띄워서 헤맸는데
03이나 04 명령어 처럼 multiple byte의 경우에는 아래의 형태로 구성되는데
station_id / cmd / length / data(word) / crc
01의 경우는 아래의 형태로 고정된다.
station_id / cmd / length / data(byte) / crc
그러다 보니 modbud poll 에서도 고정된 length에서 하드코딩될수 밖에 없고
0x01 0x01 0x02 0x00 0x00 L_CRC M_CRC 로 응답하면
CRC 부분을 보고 읽는게 아니라
0x00 L_CRC 두개를 CRC로 해석하니 mismatch로 잘못 에러를 출력한다.
어우.. 별거 아닌데 하루를 날리게 하다니..
'embeded > Cortex-M7 STM' 카테고리의 다른 글
stm32 __weak (0) | 2024.10.08 |
---|---|
stm32 modbus (0) | 2024.09.26 |
SPI NSS, NSSP mode (0) | 2024.09.11 |
FDE CIE (0) | 2024.09.06 |
code alignement factor? (0) | 2024.09.06 |