Почему при использовании libmodbus для получения данных подчиненного устройства всегда возникает ошибка CRC?
Я использую libmodbus 3.0.6 для получения данных от датчиков RS485 ,, но он всегда возвращает "ERROR CRC accept 110!= CRC вычислено 9C93"!
here is my code:
modbus_t *modbus_ctx = modbus_new_rtu("/dev/ttymxc3", 9600, 'N', 8, 1);
modbus_set_slave(modbus_ctx ,0x01);
modbus_connect(modbus_ctx );
modbus_set_response_timeout(modbus_ctx, &timeout);
modbus_rtu_set_serial_mode(modbus_ctx,MODBUS_RTU_RS485); // here also return -1 , modbus_strerror(errno) : Invalid argument
while(isRun){
u_int16_t dest[3];
memset(dest, 0, sizeof(3));
modbus_flush(modbus_ctx);
modbus_read_registers(modbus_ctx, 0x01, 3, dest); // here always return -1,modbus_strerror(errno):Invalid CRC
sleep(1);
}