Skip to content

Commit 998be06

Browse files
committed
Fix Transmission packet
fixed replicated Tx packet in Uart rx channel
1 parent 2c4852a commit 998be06

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

src/libmodbus/modbus-rtu.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -326,10 +326,11 @@ static ssize_t _modbus_rtu_send(modbus_t *ctx, const uint8_t *req, int req_lengt
326326
(void)ctx;
327327

328328
ssize_t size;
329-
329+
RS485.noReceive();
330330
RS485.beginTransmission();
331331
size = RS485.write(req, req_length);
332332
RS485.endTransmission();
333+
RS485.receive();
333334

334335
return size;
335336
#else
@@ -393,8 +394,7 @@ static ssize_t _modbus_rtu_recv(modbus_t *ctx, uint8_t *rsp, int rsp_length)
393394
return win32_ser_read(&((modbus_rtu_t *)ctx->backend_data)->w_ser, rsp, rsp_length);
394395
#elif defined(ARDUINO)
395396
(void)ctx;
396-
397-
return RS485.readBytes(rsp, rsp_length);
397+
return RS485.readBytes(rsp, rsp_length);
398398
#else
399399
return read(ctx->s, rsp, rsp_length);
400400
#endif
@@ -1256,13 +1256,11 @@ static int _modbus_rtu_select(modbus_t *ctx, fd_set *rset,
12561256
#elif defined(ARDUINO)
12571257
(void)ctx;
12581258
(void)rset;
1259-
12601259
unsigned long wait_time_millis = (tv == NULL) ? 0 : (tv->tv_sec * 1000) + (tv->tv_usec / 1000);
12611260
unsigned long start = millis();
12621261

12631262
do {
12641263
s_rc = RS485.available();
1265-
12661264
if (s_rc >= length_to_read) {
12671265
break;
12681266
}

0 commit comments

Comments
 (0)