stm32 串口接收缓冲区数据清除

2019-08-17 07:35发布

void USART2_IRQHandler(void) 



    if(USART_GetFlagStatus(USART2,USART_IT_RXNE)==SET) 
    {               
        RX2 = USART_ReceiveData(USART2); 
        USART_SendData(USART1,RX2);         USART_ClearFlag(USART2,USART_FLAG_RXNE);         while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET) ;              
    }

    if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) 
    { 
        /* 清接收中断标志*/ 
        USART_ClearITPendingBit(USART2, USART_IT_RXNE);
    }

}

  USART_ReceiveData(USART2)是返回最近接收的数据   如果没有新的数据接收  怎么样清除原来接收的数据 

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
ChrisLiu1017
1楼-- · 2019-08-17 23:55
請問樓主此問題有解決方法了嗎?
我目前也在尋求中..
如果已解決可否把原碼給我,謝謝.
dzng11
2楼-- · 2019-08-18 04:54
执行完指令清掉不就行了吗
灰明A
3楼-- · 2019-08-18 10:06
回复【2楼】正点原子:
---------------------------------
如果有新数据接受呢?
正点原子
4楼-- · 2019-08-18 10:23
回复【10楼】灰明A:
---------------------------------
继续存。
灰明A
5楼-- · 2019-08-18 10:41
 精彩回答 2  元偷偷看……
Internet
6楼-- · 2019-08-18 11:28
同样问题,不知道解决没有,在while死循环中新数据没进来之前,会重复调用上一个数据,应该怎么解决

一周热门 更多>