#include "yqhs.h" Yqhuishou_Inf yqhuishou_inf; void Get_Yqhuishou_data(void); void Get_Yqhuishou_data(void) { uint16_t ModbusCRC=0; static uint16_t receive_error = 0; //i = 0, j = 0, Yqhuishou_Inf* pYqhuishou = &yqhuishou_inf; ModbusCRC = USART3_RX_BUF002[5]<<8; ModbusCRC |= USART3_RX_BUF002[6]; if(USART3_RX_BUF002[1]!=0x03&&USART3_RX_BUF002[1]!=0x06) //校验读写属性 { receive_error = 1; } else if(USART3_RX_BUF002[2] != 0x02) //校验数据长度 { receive_error = 1; } else if(ModbusCRC != LIB_CRC_MODBUS(USART3_RX_BUF002,5)) //校验CRC { receive_error = 1; } pYqhuishou[USART3_RX_BUF002[0]-0x80].RTData_Num[0] = 1; pYqhuishou[USART3_RX_BUF002[0]-0x80].Yqhuishou_SSWD[0] = USART3_RX_BUF002[3]; // pYqhuishou[USART3_RX_BUF002[0]-0x80].Yqhuishou_SVAL[0] = USART3_RX_BUF002[4]; UNUSED(receive_error); }