其实不用这么麻烦的,直接在IRQ中断中将判断条件由
if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET)
改为while(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET)就行了。
我本来也遇到了这个问题,将
if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET)
改成
if(USART_GetFlagStatus(USART1, USART_FLAG_ORE) != RESET)
以后直接读取DR的话,只能获取字符串中基数或者偶数位的字符。但是如果将if改成while(还是读取RXNE而不是ORE)就直接可以获取大批连续数据了 |