| 在 STM32H753 的定制开发板上使用的设备包括多个 UART、FMC、以太网、I2C 和几个定时器。
 系统采用 FreeRTOS 和 LwIP。
 在 main () 函数中,就在 osKernelStart () 之前,我以中断模式从 USART6 读取数据,使用的是 HAL_UART_Receive_IT 函数。
 但 USART6 中断从未触发,HAL_UART_Receive_IT 也接收不到任何字节。
 USART6 配置为普通异步模式,无流控。
 阻塞模式的 HAL_UART_Receive () 能正常工作,所以 UART 本身是启用且配置正确的。
 中断在 Cube 生成的代码中已启用:
 HAL_NVIC_SetPriority(USART6_IRQn, 6, 0); // tried also priority 0
 HAL_NVIC_EnableIRQ(USART6_IRQn);
 当 HAL_UART_Receive_IT 超时后,ISR 中的 USART RXNE 中断处于挂起状态,
 但 IABR 中的 NVIC 位(IABR [2] 的第 7 位)却是清零的!
 之后我注释掉了 MX_LWIP_Init 调用,USART6 中断就恢复了正常工作。
 为什么以太网和 LwIP 初始化会阻塞 USART6 中断?
 我需要以太网和 USART6 能同时工作在中断模式下。
 
 
 |