USART1中断IRQHandler如何接收字符串

问题描述 投票:0回答:1

我能够通过串行方式从PC接收到STM32051板的输入数据字节,但是只要我输入2个或更多字符,每次发送一次中断就会停止,直到我复位板以重复相同的过程...如何更改IRQHandler代码以接收23个字节或字符串的有效载荷?谁能帮助我提供示例代码或修改当前代码,以便我可以接收此有效载荷?谢谢,

这里是IRQHandler函数,只能接收一个字节。

void USART1_IRQHandler(void)
{
  unsigned char getbuffer [200], finalbuffer, targetdata[];
  if(USART_GetITStatus(USART1, USART_IT_RXNE) )
  {
    getbuffer [i] = USART_ReceiveData(USART1);
    buffer = (getbuffer [i]); 
    USART_SendData(USART1, buffer);//Feedback 
    i++;          
  }
}
c stm32 interrupt-handling iar usart
1个回答
0
投票

您需要为USART清除中断处理程序中的RXNE中断位。

if(USART_GetITStatus(USART1, USART_IT_RXNE) )
{
  __HAL_USART_CLEAR_IT(USART1, USART_IT_RXNE);
…
}
© www.soinside.com 2019 - 2024. All rights reserved.