新手上路
- 积分
- 32
- 金钱
- 32
- 注册时间
- 2020-10-16
- 在线时间
- 11 小时
|
1金钱
FreeRTOS在使用串口读取数据时丢数据 40个数据 只接收到7个数据丢了33个求助
读取中断中已经加入进入临界代码 taskENTER_CRITICAL(); 及退出 taskEXIT_CRITICAL();
串口中断优先级 HAL_NVIC_SetPriority(USART3_IRQn,3,0);
任务函数优先级从4开始使用
每次上电只测第一次
void USART3_IRQHandler(void)
{
u8 Res;
#if SYSTEM_SUPPORT_OS
taskENTER_CRITICAL();
#endif
if((__HAL_UART_GET_FLAG(&UART3_Handler,UART_FLAG_RXNE)!=RESET))
{
HAL_UART_Receive(&UART3_Handler,&Res,1,1000);
USART_RX_BUF[USART_RX_STA]=Res ;
USART_RX_STA++;
}
HAL_UART_IRQHandler(&UART3_Handler);
#if SYSTEM_SUPPORT_OS
taskEXIT_CRITICAL();
#endif
}
|
|