diff --git a/core/components/modbus/modbus.cpp b/core/components/modbus/modbus.cpp index f5e6935..e64de68 100644 --- a/core/components/modbus/modbus.cpp +++ b/core/components/modbus/modbus.cpp @@ -1,4 +1,5 @@ #include "modbus.hpp" + #include "iflytopcpp/core/components/stringutils.hpp" extern "C" { @@ -151,11 +152,10 @@ int ModbusMaster::modbus10(uint8_t deviceid, uint16_t startreg, uint16_t regnum, * 成功回执: * add(1)+0x10(1)+startreg(2)+regnum(2)+crc(2) * - * 所以此处只需关心前三个字节,是ADD+0x90+ErrorCode还是ADD+0x10+其他 * */ - uint8_t rxbuf[3] = {0}; - int rxsize = 3; + uint8_t rxbuf[8] = {0}; + int rxsize = 8; ret = uartdev->receive((char*)rxbuf, rxsize, overtime); if (ret != rxsize) { logger->error("modbus10(d {},reg {}:{})::receive_packet_safe fail", deviceid, startreg, regnum);