从PIC微控制器获取Modbus响应

时间:2018-10-15 05:35:36

标签: c pic modbus

我正在尝试使用PIC16F1938的功能代码1构建modbbus RTU。目前,我在伪造一些价值来显示数据。在下面的代码中,我可以为功能code1请求获取正确的CRC值。但是我无法得到适当的回应。 我在打包数据时遇到问题。让我知道如何获得正确的响应

unsigned char rxbuf[50], ser_data[100], crc_data[100], Max_scroll = 0;
unsigned char buff[10];
volatile uint8_t index = 0, rec_flag = 0, Delay_count = 0, Id[10], Buffer_count = 0, Cal_count = 0, Disp_count = 0, inc = 0, One_sec_update = 0, Auto_scroll_count = 0;
char data1[10];
unsigned char buf[20];
unsigned int count=0;
#define METER_ID        1
unsigned int j=0;
#define READ_REG        1
#define DE RC2
char Serial_Receive_byte() {

    while(0==PIR1bits.RCIF);
    return RCREG;

}


unsigned int crc_fn(unsigned char *dpacket,unsigned int len) { 
    unsigned int crc = 0xffff,poly = 0xa001;
    unsigned int i=0;

    for(i=0; i<len; i++) {
        crc^= dpacket[i];
        for(j=0; j<8; j++) {
            if(crc & 0x01) {
                crc >>= 1;
                crc ^= poly;
            } else
                crc >>= 1;
        }
    }
    return (crc);
}

0 个答案:

没有答案