请教stm32cubemx 中断发送后直接触发中断接收,发什么就收什么,是不是在发之前要调用以下函数?__HAL_UART_DISABLE_IT(&huart2, UART_IT_RXNE); 禁止掉接收,发送完后开启?我选择的是异步收发。 HAL_UART_IRQHandler()函数的收发不是互斥关系,如下: tmp_flag = __HAL_UART_GET_FLAG(huart, UART_FLAG_RXNE); tmp_it_source = __HAL_UART_GET_IT_SOURCE(huart, UART_IT_RXNE); /* UART in mode Receiver ---------------------------------------------------*/ if((tmp_flag != RESET) && (tmp_it_source != RESET)) { UART_Receive_IT(huart); } tmp_flag = __HAL_UART_GET_FLAG(huart, UART_FLAG_TXE); tmp_it_source = __HAL_UART_GET_IT_SOURCE(huart, UART_IT_TXE); /* UART in mode Transmitter ------------------------------------------------*/ if((tmp_flag != RESET) && (tmp_it_source != RESET)) { UART_Transmit_IT(huart); } |
谢谢!问题找到了,是CR3寄存器里面HDSEL(半双工)设置了1导致的
评分
查看全部评分