OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5866|回复: 7

串口接收中断问题,开始可以进入中断,过一会就不行了

[复制链接]

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2021-5-18
在线时间
13 小时
发表于 2022-7-28 10:51:03 | 显示全部楼层 |阅读模式
各位大神,我在freertos系统下使用串口中断,开始的时候一直可以进入中断,但是程序跑一会就进不去中断了,相关代码如下:
void UART5_IRQHandler(void)                       
{
                u32 timeout=0;
    u32 maxDelay=0x1FFFF;
#if SYSTEM_SUPPORT_OS                 //ê1óÃOS
//        OSIntEnter();   
#endif
       
                HAL_UART_IRQHandler(&UART5_Handler);        //μ÷óÃHAL¿aÖD¶Ï′|àí1«óÃoˉêy
       
                timeout=0;
    while (HAL_UART_GetState(&UART5_Handler)!=HAL_UART_STATE_READY)//μè′y¾íD÷
                {
        timeout++;////3¬ê±′|àí
        if(timeout>maxDelay) break;               
                }

                timeout=0;
                while(HAL_UART_Receive_IT(&UART5_Handler,(u8 *)dRxBuffer, RXBUFFERSIZE)!=HAL_OK)//ò»′Î′|àííê3éÖ®oó£¬ÖØD¿aÆôÖD¶Ï2¢éèÖÃRxXferCountÎa1
                {               
        timeout++; //3¬ê±′|àí
        if(timeout>maxDelay) break;       
                }
#if SYSTEM_SUPPORT_OS                 //ê1óÃOS
//        OSIntExit();                                                                                           
#endif
}

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
        if(huart->Instance==UART5)
        {
                trdp_recv(dRxBuffer[0]);                       
        }
        else if(huart->Instance==UART4)
        {
                RFID_R(cRxBuffer[0]);
        }
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2021-5-18
在线时间
13 小时
 楼主| 发表于 2022-7-28 10:53:41 | 显示全部楼层
有没有大神知道啥原因啊
回复 支持 反对

使用道具 举报

4

主题

456

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1072
金钱
1072
注册时间
2021-4-26
在线时间
352 小时
发表于 2022-7-28 11:17:54 | 显示全部楼层
帮顶  
回复 支持 反对

使用道具 举报

12

主题

3379

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8600
金钱
8600
注册时间
2020-5-11
在线时间
4019 小时
发表于 2022-7-28 11:22:45 | 显示全部楼层
说下调试方法: 比如你怀疑是接收数据处理有问题,比如"trdp_recv(dRxBuffer[0]);  "这句,那就将这句去掉,看它还能不能进中断.
逐步的排查.
专治疑难杂症
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2021-5-18
在线时间
13 小时
 楼主| 发表于 2022-7-28 11:27:05 | 显示全部楼层
LcwSwust 发表于 2022-7-28 11:22
说下调试方法: 比如你怀疑是接收数据处理有问题,比如"trdp_recv(dRxBuffer[0]);  "这句,那就将这句去掉,看 ...

去掉这个也试过,也是过一会就进不去了
回复 支持 反对

使用道具 举报

12

主题

3379

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8600
金钱
8600
注册时间
2020-5-11
在线时间
4019 小时
发表于 2022-7-28 11:29:26 | 显示全部楼层
本帖最后由 LcwSwust 于 2022-7-28 11:33 编辑
ziyi115325 发表于 2022-7-28 11:27
去掉这个也试过,也是过一会就进不去了

哦,不太了解HAL库,不知它是否先将接收数据存入buffer,存满后就进不去了,是否需要清除buffer?是否需要重新使能接收中断?
自己去查一下,我只用FWlib,所以帮不上了.
专治疑难杂症
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2021-5-18
在线时间
13 小时
 楼主| 发表于 2022-7-28 11:34:07 | 显示全部楼层
LcwSwust 发表于 2022-7-28 11:29
哦,不太了解HAL库,不知它是否先将接收数据存入buffer,存满后就进不去了,是否需要清除buffer?是否需要重新 ...

好的 根据您的思路我再看看,多谢大哥!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2023-7-5
在线时间
2 小时
发表于 2023-7-11 10:13:38 | 显示全部楼层
楼主解决了吗,我连的WiFi串口中断都进去....
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-18 06:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表