单片机终端导致的程序启动问题

工作中遇到的一个问题,单片机link烧录程序后,第一次程序启动可以运行屏幕正常亮起,之后掉电后重新上电屏幕却不亮,像是死机的样子。刚开始想着难不成自己写的程序只能运行一次?

由于程序使用link工具状态下,都可以正常运行,且只有掉电了重新上电才不运行(通过观察实际上是一分钟之后屏幕才亮起)。因此这里在查找问题时焊接出了串口用于观察问题,在关键位置打印log,逐步缩小问题点范围。通过串口观察到程序是有启动的,但是似乎是卡在了一个地方。

最后排查发现是卡在了一个自己写的delay函数里面,这时候不禁怀疑自己写的delay延迟那么高的吗?但仔细想想却不应该,因为debug下没有多少延迟,但是release下延迟是其的上百上千倍,这是不可能的。因此将打印log的操作放在延迟函数里,主要是观察release下的速度。

之后通过观察log发现,重新上电程序是运行起来了,结果在delay函数里面打印了几十条log突然就卡住了一分钟左右。这时因该猜到了,肯定有什么打断了我的delay函数加大了延时,导致启动滞后。这时想到,能打断delay也只有终端函数了,于是在使用的中断函数里将log打印出来,之后发现果中断里的log果然有打印,果然是中断的问题。程序在启动时,其中的某个模组异常突然频繁地产生中断造成地这一问题。最后将中断屏蔽,解决了问题。

这时候就疑问为什么debug下面没有中断,但是release下就有中断??

相关推荐
silno5 分钟前
图解 STM32 USB CDC虚拟串口 的实现
stm32·单片机·stm32f103c8t6·cdc虚拟串口
Silicore_Emma36 分钟前
芯谷科技—D8227 双通道音频功率放大集成电路产品简介与应用推广
单片机·音视频·功率放大器·芯谷科技·便携式音频设备·双通道音频·车载音频系统
Darken032 小时前
单片机的库函数和HAL库有什么区别?还有那些库函数?
单片机·hal库·ai学习
皓月盈江2 小时前
STC12、STC15、STM32系列单片机控制16*64LED点阵屏显示,修改显示内容
单片机·嵌入式硬件·keil·stm32f103c8t6·stc12c5a60s2·stc15w4k32s4·led点阵屏程序源码
qq_448011163 小时前
USB概述
嵌入式硬件
沐欣工作室_lvyiyi3 小时前
智能家居安全报警系统设计(论文+源码)
单片机·毕业设计·智能家居·家居安全报警
一枝小雨3 小时前
7 App代码转AES加密文件生成步骤
stm32·单片机·嵌入式·aes·ota·bootloader·加密升级
li星野3 小时前
打工人日报#20251202
单片机·嵌入式硬件
mylinke4 小时前
永磁同步电机双闭环控制模型故障诊断与仿真研究:基于MATLAB Simulink的仿真代码实现
单片机
云山工作室5 小时前
基于ZigBee的温室智能控制系统设计(论文+源码)
stm32·单片机·嵌入式硬件·物联网·课程设计