【发布时间】:2022-01-04 08:26:12
【问题描述】:
我正在使用 stm32f407 控制器。我正在使用 2 UART - 2&3。我第一次被打断了,但第二次我在 uart 2 上被打断 - 我没有在 uart3 上被打断。
下面是我的回调函数:
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart2.Instance == USART2)
{
gsm.RxData[gsm.RxDataCnt]=Uart_Rx_Buffer;
gsm.RxDataCnt=(1+ gsm.RxDataCnt) % MAX_Buff_Size;
HAL_UART_Receive_IT(&huart2,&Uart_Rx_Buffer, 1);
}
else if(huart3.Instance == USART3)
{
lidar.RxData[lidar.RxDataCnt]=uart3_RX_Data;
lidar.RxDataCnt=(1+ lidar.RxDataCnt) % MAX_LIDAR_BUFFER;
HAL_UART_Receive_IT(&huart3,&uart3_RX_Data, 1);
if(lidar.RxDataCnt >MAX_COUNT_BUFFER)
{
lidar.received = true;
}
}
}
【问题讨论】:
-
如果您提供完整代码并解释出现此行为时的场景会更好(您对微控制器做了什么?)。
标签: c embedded stm32f4discovery