复仇之矛 发表于 2015-3-4 17:11

STM32 USART->DR

各位大神,小白刚刚接触STM32,在练习串口时,出现一下问题,请教各位了,此次先谢谢指教的大神。
程序在接收数据时,电脑调试助手发送16进制比如同时36 39 38和结束字符OD时,只接收并显示(LCD)到36,但是依次发送时却能显示36 39 38,不知问题出在何处,请大神指点。

复仇之矛 发表于 2015-3-4 17:14

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=res;
   USART2_RX_STA++;
   if(USART2_RX_STA>(USART2_MAX_LEN-1))
           {
               USART2_RX_STA=0;
   }
    }       
}                                                                       
}
此次贴上中断处理函数

复仇之矛 发表于 2015-3-6 08:39

问题已经查出,这就结贴喽:lol
页: [1]
查看完整版本: STM32 USART->DR