如何在PIC24单片机上使用Modbus

如何在PIC24单片机上使用Modbus,c,uart,modbus,microchip,mplab,C,Uart,Modbus,Microchip,Mplab,第一次使用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,

第一次使用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]);   
}  
}
void temp_传感器()
{
//将RTU传输至现场探头,以获取温度和单位
流量控制设置高();
无符号字符TempRTU[]={0x01、0x03、0x00、0x2D、0x00、0x02、0x54、0x02};
int i;
int data_len=8;
对于(i=0;i
0x01:从ID: 0x03:功能代码: 0x002D:读取温度寄存器: 0x0002:读取2个寄存器: 0x5402:CRC校验和:

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


有人有Modbus和PIC微控制器的经验吗

Flow\u Control\u SetHigh()
中发生的事情驱动RS485收发器,允许我将字符串发送到从设备。