modu8888 发表于 2018-3-7 13:24:00

本帖最后由 modu8888 于 2018-3-8 10:27 编辑


我的F4里面这样:
                              __HAL_UART_DISABLE_IT(&UART1_Handler,UART_IT_RXNE);
                              HAL_UART_Transmit(&UART1_Handler,&mb_buf_out,6,100);                              __HAL_UART_ENABLE_IT(&UART1_Handler,UART_IT_RXNE);
                              HAL_UART_Receive_IT(&UART1_Handler,&RxData, 1);
F1里面这样:
                              __HAL_UART_DISABLE_IT(&huart2,UART_IT_RXNE);
                              HAL_UART_Transmit(&huart2,&i,1,100);               
                              __HAL_UART_ENABLE_IT(&huart2,UART_IT_RXNE);
                              HAL_UART_Receive_IT(&huart2,&aRxBuffer,1);      

wpgdut 发表于 2019-1-3 23:21:18

谢谢分享,解决了我一个困惑很久的问题。原本串口也是使用查询发送和中断接收,但是在有接收的同时进行发送,就会导致死锁,然后再也进不去中断。将中断接收改为DMA接收解决了这个问题。

zhenyu566 发表于 2019-11-15 20:21:27

wenyangzeng 发表于 2017-11-16 21:43
主函数加入:__HAL_UART_ENABLE_IT(&huart2,UART_IT_RXNE);
就可以不断进入中断了。

我试了不行,你们这样就可以吗?

雨山 发表于 2020-7-2 11:08:28

在发送、接收之前关闭中断__HAL_UART_DISABLE_IT(&huart2,UART_IT_RXNE);在之后再打开中断__HAL_UART_ENABLE_IT(&huart2,UART_IT_RXNE);就好了
页: 1 [2]
查看完整版本: 关于HAL_UART_Receive_IT和HAL_UART_Transmit一起用的问题