各位大神,小白刚刚接触STM32,在练习串口时,出现一下问题,请教各位了,此次先谢谢指教的大神。
程序在接收数据时,电脑调试助手发送16进制比如同时36 39 38和结束字符OD时,只接收并显示(LCD)到36,但是依次发送时却能显示36 39 38,不知问题出在何处,请大神指点。
此次贴上中断处理函数
u8 USART2_RX_STA=0;
void USART2_IRQHandler(void)
{
u8 res;
BEEP=0;
delay_ms(1);
BEEP=1;
delay_ms(10);
BEEP=0;
if(USART2->SR&(1<<5))
{
res=USART2->DR;
if(res==0x0D)
{
USART2_RX_STA|=0x80;
finish=1;
}
else
{
USART2_RX_BUF[USART2_RX_STA&0X3F]=res;
USART2_RX_STA++;
if(USART2_RX_STA>(USART2_MAX_LEN-1))
{
USART2_RX_STA=0;
}
}
}
}
|