初级会员

- 积分
- 106
- 金钱
- 106
- 注册时间
- 2018-1-29
- 在线时间
- 18 小时
|
void ReceiveDataProcess()
{
u8 Tempdat1[6]; //说明是读运行状态命令
u8 TempData1H,TempData1L;
u16 TempData1;
Tempdat1[0]=ReceiveBuffer[all+2];
Tempdat1[1]=ReceiveBuffer[all+3];
TempData1 = myCRC16(Tempdat1,2);
TempData1H = TempData1;
TempData1L = TempData1>>8;
if((ReceiveBuffer[all+2]==TempData1L)&&(ReceiveBuffer[all+3]==TempData1H ))
{
{
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);//等待发送结束//
USART_ClearFlag(USART1,USART_FLAG_TC);
USART_SendData(USART1, 0x11);
FlagReceiveComplete=0;
}
}
}
u16 myCRC16(u8 dat[],u8 DataLen)
{
u8 CRC16_H = 0xFF; //高CRC字节初始化
u8 CRC16_L = 0xFF; //低CRC字节初始化
u8 crcIndex ; //CRC循环中的索引
u16 i;
for (i=0;i<=DataLen-1;i++)
{
crcIndex = (u8)(CRC16_H^dat[i]); //查找CRC表值
CRC16_H = (u8)(CRC16_L^TableCRCH[crcIndex]);
CRC16_L = TableCRCL[crcIndex];
}
return (u16)(CRC16_H << 8 | CRC16_L);
}
|
|