| 下面以一485接口的传感器通信为例: 
 float Task_Read_485Senor(void)
 {
 unsigned char RS485[11]={0x01,0x04,0x00,0x00,0x00,0x03,0,0};
 unsigned char num=6;
 u16 CRC_RES=0,temp;
 RS485_Init(9600);                                        //初始化485
 Get_CRC(RS485,num,&CRC_RES);                //获取命令CRC
 RS485[6]=CRC_RES%256;                                //CRC低位
 RS485[7]=CRC_RES/256;                                //CRC高位
 RS485_Send_Data(RS485,8);                        //发送8个字节读取命令
 delay_ms(2000);                                        //延时一定时间,确保接收完成了
 RS485_Receive_Data(RS485,&num);        //接收结果写入数组
 
 Get_CRC(RS485,num,&CRC_RES);                //接收结果CRC校验
 
 if( CRC_RES == 0 ){                //有效数据
 //return 读数;
 }
 else{                                                                        //无效
 MyPrintf("CRC校验错误\r\n");
 return 0xff;                                //返回失败
 }
 return 0xff;
 }
 
 |