OpenEdv-开源电子网

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

UCOSIII长时间运行不进串口中断

[复制链接]

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
168
金钱
168
注册时间
2020-9-2
在线时间
41 小时
发表于 2021-7-10 11:23:11 | 显示全部楼层 |阅读模式
1金钱
我用ucos写串口中断接收数据,刚上电后是可以正常接受数据,但是运行时间一段时间后串口中断就不接收数据,系统中的其他任务还可以正常运行,正常实现任务调度
//串口1接收数据中断服务函数
void USART1_IRQHandler(void)        
{
        unsigned char r;
        OS_ERR err;
        CPU_SR_ALLOC();
        CPU_CRITICAL_ENTER();
        OSIntEnter();
    CPU_CRITICAL_EXIT();
        if(USART_GetFlagStatus(USART1,USART_IT_RXNE)!=RESET)
        {
               
                USART_ClearITPendingBit(USART1,USART_IT_RXNE); // 清中断标志
                r=USART_ReceiveData(USART1);
                USART1_RX_BUF[USART1_REC_CNT]=r;
                USART1_REC_CNT++;
                if(USART1_REC_CNT>(USART1_REC_LEN-1))
                {
                        OSTaskSemPost((OS_TCB  *)&Analy_TaskTCB,           //目标任务
                                                        (OS_OPT   )OS_OPT_POST_NONE,        //没选项要求
                                                        (OS_ERR  *)&err);       
                        USART1_REC_CNT=0;
                }
       
        }
        USART_ClearITPendingBit(USART1,USART_IT_CTS);
        if(USART_GetFlagStatus(USART1,USART_FLAG_ORE) != RESET) // 检查 ORE 标志
        {
                USART_ClearFlag(USART1,USART_FLAG_ORE);
                USART_ReceiveData(USART1);
        }
        OSIntExit();               
}




我怀疑是不是长时间运行内存溢出了?以为我在一个F103ZET6上运行了一夜就没出现问题

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2021-7-12 01:38:04 | 显示全部楼层
加入一些printf,辅助分析问题吧
回复

使用道具 举报

10

主题

32

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2108
金钱
2108
注册时间
2018-3-22
在线时间
182 小时
发表于 2021-7-12 21:30:52 | 显示全部楼层
如果内存溢出,单片机是会进入异常吧,是不是会复位? 另外串口中断里面加入临界状态是否可以?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 17:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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