STM32 HAL库多个串口的回调函数执行不到

2019-07-14 15:37发布

我使用的STM32的两路串口收发,两个串口接收中断处理有问题,我现在的处理方式是这样的
/* USER CODE BEGIN 4 */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
        {
                if(huart == &huart2)
        {
                                uRX_buf[RX_cont++] = RX_buf;
//                HAL_UART_Transmit_DMA(&huart2, uTX_buf, 8);
                                if(RX_cont>63)
                                {
                                        RX_cont=0;
                                }
                }
else        if(huart == &huart4)
        {
                                uRX_buf[RX_cont++] = RX_buf4;
                                if(RX_cont>63)
                                {
                                        RX_cont=0;
                                }
//                        HAL_UART_Receive_IT(&huart4,&RX_buf4,1);//¡ä??¨²?¨®¨º¨¹?D??

                }

仿真看的确实是进了中断了,但是回调函数中的 else        if(huart == &huart4)执行不到,有么有用过的大神给点提示吧,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
Sandyjia
1楼-- · 2019-07-14 18:44
 精彩回答 2  元偷偷看……
siyu922
2楼-- · 2019-07-14 23:06
TOPCB 发表于 2018-11-29 19:17
不能这么写,if(huart->Instance ==USART1 )

要改成if(huart->Instance ==USART1 )吗>?
siyu922
3楼-- · 2019-07-15 01:56
siyu922 发表于 2018-11-29 19:43
要改成if(huart->Instance ==USART1 )吗>?

好的我在试下看看 ,谢谢!
TOPCB
4楼-- · 2019-07-15 05:51
是的。判断接口。你可以看一下stm32f4xx_hal_msp.c里面怎么写。参考一下。
siyu922
5楼-- · 2019-07-15 11:03
TOPCB 发表于 2018-11-29 19:17
不能这么写,if(huart->Instance ==USART1 )

大神,你这个方式好像行不通阿回调函数的传递参数只有一个void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
像你这样的写法会报错.
TOPCB
6楼-- · 2019-07-15 11:55
 精彩回答 2  元偷偷看……

一周热门 更多>