首页 > 解决方案 > 如何在 Microchip PIC24 中使用 Modbus

问题描述

第一次使用 Modbus。我正在尝试发送从我的从设备(ID 为 0x01)读取温度值的请求。我正在通过 UART 发送命令并在我的逻辑分析仪上查看命令。这是我的代码:

void temp_sensor()
{

//Transmit RTU to Inisitu probe to fetch Temperature and units
Flow_Control_SetHigh();

unsigned char TempRTU[]= {0x01, 0x03, 0x00, 0x2D, 0x00, 0x02, 0x54, 0x02};

int i;
int data_len = 8;

for (i = 0; i < data_len; i++) {

    UART1_Write(TempRTU[i]);   
}  
}

0x01:从机 ID:0x03:功能码:0x002D:读取温度寄存器:0x0002:读取 2 个寄存器:0x5402:CRC 校验和:

在我的分析仪上通过 UART 查看时十六进制字符串是正确的,但是当将分析仪设置为查看 Modbus 时,字符串甚至不正确。在查看 Modbus 信号时,我附上了分析仪的屏幕截图。

有人有使用 Modbus 和 PIC 微控制器的经验吗?在此处输入图像描述

标签: cuartmodbusmicrochipmplab

解决方案


推荐阅读