正点原子FreeRTOS队列操作试验问题?

2019-07-20 04:29发布

用STM32CubeMx生成的FreeRTOS工程,串口接收程序套用正点原子中的F429串口接收数据程序,在串口回调函数中添加了下面这部分程序(在不使用FreeRTOS时串口接收程序正常)使用FreeRTOS后,串口接收到数据后,串口调试助手打印Send Failed,进入硬件中断故障中断。
//就向队列发送接收到的数据
if((USART_RX_STA&0x8000)&&(UsartQueueHandle!=NULL))
{
  err = xQueueSendFromISR(UsartQueueHandle,USART_RX_BUF,&xHigherPriorityTaskWoken);//向队列中发送数据
  if(err!=NULL)
  {
   printf("Send Failed ");
  }
  USART_RX_STA=0;
  memset(USART_RX_BUF,0,USART_REC_LEN);//清除数据接收缓冲区USART_RX_BUF,用于下一次数据接收
  portYIELD_FROM_ISR(xHigherPriorityTaskWoken);//如果需要的话进行一次任务切换


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。