如何读取STM32F4中UART随附的所有数据?

时间:2020-08-19 11:16:42

标签: stm32 uart usart

我目前正在使用STM32进行USART,并且在使用usart中断时它正在工作。当我通过USB发送HTERM时,它正在填充rxBuff,但是当我尝试在主要模块中时,它却没有填充。它只是采用传输数据的第一个字符。例如,我尝试发送问候,它只是将“ h”放入rxBuff并停止。当我尝试再次发送它时,这次rxBuff变成[h,h],这意味着它仅采用了第一个字符。

工作:

void USART1_IRQHandler(void) {
    
    rxBuff[i++] = USART_ReceiveData(USART1);
    
    if (i > RX_BUFFERSIZE ){
        i = 0;
    }
    USART_ClearITPendingBit(USART1, USART_IT_RXNE);
}

不起作用:

int main(void){

while(1){ 
    if ( USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == SET ){
        rxBuff[i] = USART_ReceiveData(USART1);
        i++;
    }
    if (i > RX_BUFFERSIZE ){
        i = 0;
    }
 }
}

0 个答案:

没有答案