大学生
最后登录1970-1-1
在线时间 小时
注册时间2015-9-22
|
有一段通过串口接收数据的代码,小弟才疏学浅,没看出来到底是怎么将整个数据包接收过来的,哪位给解释一下。
void USART3_IRQHandler(void)
{
uint8_t DataIn = 0;
if(USART_GetITStatus(USART3 , USART_IT_RXNE) != RESET)
{
DataIn = USART_ReceiveData(USART3);
// flag_k++;
if(DataIn==0x55)
{
// COM_DISABLE();
// TIM7_DISABLE();
// flag_state_com = 1;
CBS_CP_HIGH();
flag_k = 1;
}
//接收下一包数据 KeyCmd_GetName[17]={0x6b,0x07,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x80,0x04,0x03,0x00,0x00,0x00,0x00};
if((DataIn == 0x6b)&&(flag_k == 1))
{Handshake_data[0]=DataIn; }
if(Handshake_data[0] == 0x6b)
{
flag_k = 0;
Handshake_data[flag_hs++] = DataIn;
}
if(flag_hs ==17)
{
COM_DISABLE();
TIM7_DISABLE();
flag_hs = 0;
flag_state_com = 1;
}
}
}
|
|