关于串口接收字符串新手求教

2019-07-20 00:30发布

本帖最后由 Lixdong 于 2019-7-17 14:27 编辑

新手求教,调试结果如图 企业微信截图_15633301829249.png 接受第二个也是存到a 接受第二个也是存到a
串口发送2435,串口只能接受到24程序就运行不下去了,还都是存到a,变量RS232_RX_CNT的值也不增加,请问程序有什么BUG吗?
下面是串口中断程序
u8 RS232_RX_BUF[200];          //接收缓冲,最大200个字节.
u8 RS232_RX_CNT=0;                        //接收到的数据长度
void USART2_IRQHandler(void)                        //串口2中断服务程序
{
        
        u8 Res;

        u8 a,b,c,d;
        if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)  //接收到数据
        {
               

                Res =USART_ReceiveData(USART2);//(USART2->DR);        //读取接收到的数据
                if(RS232_RX_CNT<64)
                {
                        RS232_RX_BUF[RS232_RX_CNT]=Res;                //记录接收到的值
                        RS232_RX_CNT++;                                                //接收数据增加1
                }
                a=RS232_RX_BUF[0];
                b=RS232_RX_BUF[1];
                c=RS232_RX_BUF[2];
                d=RS232_RX_BUF[3];
                }
                RS232_RX_CNT=0;        

}
请问这个中断服务程序是正确的吗?若是不正确请帮忙修正一下,多谢!


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。