问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

stm32切换屏幕卡死

发布网友 发布时间:2023-05-04 13:24

我来回答

1个回答

热心网友 时间:2023-10-29 18:23

程序主逻辑无法执行,但是各个中断服务程序能够正常运行。
解决方法:
1)在中断程序中点灯或者打印,判断中断程序是否能够正常运行;
2)keil的debug模式在线调试运行,即可知道程序卡死位置。
3)在2)无法满足时,在程序主逻辑中打印或者点灯,多次编译烧录,判断卡死位置。

2、程序卡死在中断中,中断程序中没有清除中断标志位,或者中断服务程序的触发频率太高,中断没有执行完毕又触发了中断标志位,单片机在循环执行中断服务程序。
例如在高频率的中断服务程序中增加printf打印信息容易造成该现象。
现象:程序主逻辑无法执行,部分中断程序也无法执行。
解决方法:
1)在问题发生时,调整没有执行的中断程序的优先级为最高优先级,例如SysTick中断优先级、TIMER有限级等,在该对应中断服务程序中点灯或者低频定时打印,观察是否执行。
2)如果执行,则说明肯定卡死在中断中,仔细检查所有的中断程序。仍无法判断问题点,则逐步降低调整优先级的中断服务程序,直到其不被执行,确定问题程序优先级,缩小范围,再找问题。

3、程序进入HardFault,HardFault本身也是一个中断,只不过其中断优先级为-1,高于一切用户可设置中断。
产生原因(常见的均为地址类问题):
1)访问了单片机无法到达的地址;
2)访问地址不对齐,尤其是在*(int *) *(float *)等多字节强制取值时容易出现,检测强制取值的地址是否为四字节对齐。
3)PC指针跑飞,该现象在我多年经验中只遇到过一次,是在强干扰情况下,芯片PC指针突然变为非常异常值,芯片直接进入HardFault。该情况实际很少遇到,通常情况下芯片不会无缘无故跑飞,多数都为自身程序问题。
解决办法(出现问题后只能断电重启,但可以找出造成问题的点):
1)代码中增加HardFault中断服务程序,在中断向量表中可以找函数名称。
2)服务程序中增加特殊的点灯提示即可。后期任何进入HardFault的问题都能一目了然。
3)HardFault中断服务程序中可以保存芯片信息到Flash中,以便重新上电时检查问题点,保存的信息主要是进入HardFault前的PC指针,通过在该PC指针在.map文件中查找对应区间的函数,即可确认是什么函数造成了HardFault。该操作的详细步骤自行百度。

4、芯片不停的高频重启(此处不讨论硬件造成的问题),不是所有的地址异常等都会进入HardFault,有些是造成芯片重启。
现象:
1)看上去芯片主程序、中断程序、HardFault 什么都不执行了。
解决方法:
1)在main()函数的最开始(注意要先配置外设),增加点灯和延时处理,或打印。观察上电后是否有输出。并且反复输出,或者灯闪烁。
2)逐步调整点灯位置,确认造成死机点。
3)在程序执行到main之前,是先执行芯片的RESET中断服务程序,这之间会初始化中断向量表,初始化堆栈等,在.s文件中有相应的汇编代码。如果死在main之前,可尝试在RESET中断服务程序中直接操作寄存器,配置时钟和GPIO外设,控制点灯,观察是否能够点亮,以确认问题。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
水利水电工程单元工程施工质量验收评定标准——土石方工程(SL 631... 关于水利水电工程项目划分的规程有哪些?划分的越细越好,感谢大家的帮 ... 水利水电工程的单位工程包括哪些工程? 尖子生学案:生物高中选修3目录 U盘传了数据怎么删除电脑记录如何清除电脑上U盘使用记录 把u盘插电脑怎么删掉记忆如何删掉电脑上插过U盘的记录 win7清除u盘记录 如何清理win7电脑u盘痕迹如何清除电脑上U盘使用记录 麦当劳和华莱士的外卖电话是什么? 一文详解ISO/IEC20000信息技术服务管理体系认证好处、材料、流程 香港教父的介绍 高德地图琴团长语音包怎么得原神琴语音包设置方法 在使用UC/OS_ii写STM32时,调用信号量之后总是进入异常中断HardFault_Handler()中 原神高德地图语音包怎么获得高德地图可莉语音包在哪设置 单片机程序进入HardFault_Handler 该怎么排查? STM32F103程序运行正常,但在debug时进入HardFault_Handler是什么原因? 工资回执截图是什么意思 mdk6使用定时器3进入hardfault 征兵体检的时候,医生给我写了潜水员合格、潜艇人员合格、地勤人员合格是不是要去这些兵种啊 水面舰艇人员是干啥的?我的体检单上面这么写,是属于海军?还是军舰? 老板提前给你一人发工资截图什么意思? 各位为什么在调试的时候进入了hardfault 中断处理函数 张红是什么职务?银河电子董事长 我今年体检当兵,在我的主检栏里填的是水合格,还有的潜水合格。想问一下这是什么意思? 征兵体检结论分为潜潜水坦空陆是什么意思? 李春燕做什么行业的?银河电子监事 离婚的单身女人总是爱在朋友圈晒自己的收入工资单截图是一种什么心理? 验兵时体检盖章是潜艇员合格 孙胜友是什么人?银河电子副总经理 吴雁是什么人?银河电子副总经理 梦见维修汽车的预兆 蝴蝶和月亮代表着什么样的乐器 西铁城xc系列什么档次 西铁城xc系列都是电波表吗 还有那一只只*的“蝴蝶”,从树上飘落让“月亮”旁的草多了几点“星星”,月亮指什么,星星指什么? Citizen 手表品牌XC的历史 送外卖的健康证需要检查哪些 外卖骑手要捡查艾滋病吗? 请问西铁城xc系列都是光动能的表吗,有单纯的石英表嘛,XCB38-8400机芯是? 西铁城xc系列H504-T012850是什么型号? 美团会调查骑手体验吗 Citizen西铁城XC系列光动能表男表AT0645-50E 男款还是女款 女生发落差感每个男的都有怎么回复 京东索尼618分期免息吗 落差是什么感觉? 京东白条分期7折一个月是多少 聊天说换资源是什么意思 市场换技术的含义 以资本换市场是什么意思? 请教什么是市场决定资源配置