解决办法:将原来115200的波特率修改为19200,然后主机读数据成功。
一、modbus主机读数据失败现象
添加freemodbus主机的时候遇到了奇怪的问题,记录下来。先说明一下情况,前两天按照RT例程把freemodbus主机移植完毕,添加modbus主机
并且与上位机modbus slave从机的写指令(10)通讯成功,把数据实时写进了上位机从机,然后想起来忘记测试读指令(03)通讯是否成功,便测试了一下,结果通讯不成功,代码效果如下:

extern USHORT usMRegHoldBuf[MB_MASTER_TOTAL_SLAVE_NUM][M_REG_HOLDING_NREGS];
static void send_thread_entry(void *parameter)
{
eMBMasterReqErrCode error_code = MB_MRE_NO_ERR;
rt_uint16_t error_

在遇到Modbus主机读取数据失败的问题时,通过调整波特率从115200至19200解决了通讯问题。文章详细记录了在不同波特率下主机与从机的通讯状态,及由此引发的错误代码变化。
最低0.47元/天 解锁文章
5434





