OpenEdv-开源电子网

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

问下大家 ,程序仿真刚开始时可以进入while1循环,

[复制链接]

43

主题

109

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1163
金钱
1163
注册时间
2019-10-22
在线时间
226 小时
发表于 2023-7-24 15:31:57 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 Xiuer666 于 2023-7-24 15:35 编辑

然后程序运行20s左右 主函数中while1 循环进不去了,这有可能是什么原因?有中断标志没关吗?导致频繁进入中断,
所以不能进入while1循环?还有其他可能的情况吗?

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

使用道具 举报

3

主题

800

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3775
金钱
3775
注册时间
2017-3-7
在线时间
1645 小时
发表于 2023-7-24 16:26:49 | 显示全部楼层
进不了while肯定进hardfault类似的死循环了,找个jlink之类仿真下就好了
回复

使用道具 举报

43

主题

109

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1163
金钱
1163
注册时间
2019-10-22
在线时间
226 小时
 楼主| 发表于 2023-7-24 16:46:16 | 显示全部楼层
a5820736 发表于 2023-7-24 16:26
进不了while肯定进hardfault类似的死循环了,找个jlink之类仿真下就好了

我仿真了下,应该是卡在串口中断函数里边了,他就是一直在串口中断函数里面循环,但是
不会卡住,是因为我没清除标志位吗?

//中断控制函数void USART1_IRQHandler(void)
{   
        if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)                        //接收中断触发
        {

               
                if(Enable_rx_timeout_flag == 0)
                {
                        Enable_rx_timeout_flag = 1;
                        Rx_timeout_count = 0;
                        TIM_Cmd(TIM2,ENABLE);                                                                       
                }
                Rx_timeout_count = 0;
               
                               
        }       
       
        if(USART_GetITStatus(USART1,USART_IT_TXE) != RESET)                                //发送中断触发       
        {               
                Send_Data_();
        }
}  
在数据发送完成后我用的 USART_ITConfig(USART1,USART_IT_TXE,DISABLE);                        //关闭发送中断
还用清除什么标志位吗
回复

使用道具 举报

10

主题

116

帖子

0

精华

高级会员

Rank: 4

积分
842
金钱
842
注册时间
2021-12-23
在线时间
202 小时
发表于 2023-7-24 17:06:13 | 显示全部楼层
Xiuer666 发表于 2023-7-24 16:46
我仿真了下,应该是卡在串口中断函数里边了,他就是一直在串口中断函数里面循环,但是
不会卡住,是因为 ...

了解一下USART_ClearITPendingBit函数
回复

使用道具 举报

3

主题

800

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3775
金钱
3775
注册时间
2017-3-7
在线时间
1645 小时
发表于 2023-7-24 17:22:53 | 显示全部楼层
你既然能仿真,就能知道触发哪个中断,然后相应的清楚下中断就好了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 04:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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