新手上路
- 积分
- 43
- 金钱
- 43
- 注册时间
- 2015-9-17
- 在线时间
- 4 小时
|
5金钱
串口中断处理函数:(问题在代码后)
void USART1_IRQHandler(void)
{
u8 Res;
#if SYSTEM_SUPPORT_OS
OSIntEnter();
#endif
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
Res =USART_ReceiveData(USART1);
if((USART_RX_STA&0x8000)==0)
{
if(USART_RX_STA&0x4000)
{
if(Res!=0x0a)USART_RX_STA=0;
else USART_RX_STA|=0x8000;
}
else
{
if(Res==0x0d)USART_RX_STA|=0x4000;
else
{
USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
USART_RX_STA++;
if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;
}
}
}
}
#if SYSTEM_SUPPORT_OS
OSIntExit();
#endif
}
问题:假设用串口调试助手发送字符串 ABCD,那么开发板上的串口接收该字符串是一个一个字符接收的吧??那串口状态标志USART_RX_STA是什么时候被写的?串口中断处理函数被调用4次吗???
|
|