我目前正在使用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;
}
}
}