微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 麻烦看看这个串口接收中断对不对?

麻烦看看这个串口接收中断对不对?

时间:10-02 整理:3721RD 点击:
void USART1_IRQHandler(void)                        //串口1中断服务程序
        {
                unsigned char rCh;  
        static char rCnt = 0;  
               
                if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == SET)  
                {      
         //  USART_SendData(USART1, USART_ReceiveData(USART1));  
        rCh = USART_ReceiveData(USART1);  
        USART_RX_BUF[rCnt] = rCh;        
                rCnt++;       
        if(rCnt==10)       
                {
               
                    rCnt=0;
                    memcpy(USART_RX_TEM,USART_RX_BUF,10);//缓冲  
            USART_RX_STA = 1;  //通知主循环处理  
               
                }
               
                USART_ClearITPendingBit(USART1, USART_IT_RXNE);
                //USART_ClearFlag(USART1,USART_FLAG_TC);
        }
}
发送的:
if(USART_RX_STA==1)
                {
                USART_RX_STA=0;
            UART_PutStr(USART1, "USART1 OK!\r\n");
                UART_PutStr(USART1, (u8*)USART_RX_TEM[USART_REC_LEN]);
               
                }

运行后:串口返回的数据和发送的对不上。发送的第一句正常 ,第二句对不上。

其他部分没看,不过每次进入中断都会有 static char rCnt = 0;  ,确定每次进入中断都能把数据包收完吗

有知道的吗?返回的数据不变 一直是FD 0C

不错  看着别的程序改的  ,没看好。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top