stm32疑难杂症之电压不够程序跑飞

在开发阶段,如果出现程序不断重启的情况。

首先先检查是不是代码问题。

1.数组越界。定义的数组只有50个单元,但是程序运行的过程中,却给他赋给50+个单元。

2.中断耗时太长,刚出中断又进去了。这时的现象是程序一直在中断中执行,回不到主函数。 一般出现在中断嵌套中。

3.中断或主函数中有死循环,导致是否没有及时喂看门狗。

4.堆栈溢出。可以用static来避免

5.程序中使用malloc()函数没有释放。

如果没有发现具体的问题。

则开始检查硬件问题。

首先!!!

检查stm32的供电电压是否稳定,是否在正常工作电压范围内。

电源文波大小一定要小,一般Ldo供电在3.3v在几个ma ,在stm32的vdda 和vssa引脚一定要接磁珠,各个电源硬件要接滤波电容。

保证Vcc大于1.8V。当电压低至0.8V时,程序仍有可能执行。这时的现象是PC指针乱飞,有复位,死机,停在中断,时钟频率发生变化等现象。

相关推荐
BMS苦研者23 分钟前
芯片选型避坑指南:如何根据需求快速筛选MCU
单片机·嵌入式硬件
国科安芯2 小时前
基于AS32A601型MCU芯片的屏幕驱动IC方案的技术研究
服务器·人工智能·单片机·嵌入式硬件·fpga开发
努力学习的小趴菜。2 小时前
基于STM32的智能天气时钟
stm32·单片机·嵌入式硬件
逆小舟5 小时前
【STM32】电动车报警系统
stm32·单片机·嵌入式硬件
小范馆5 小时前
STM32 解锁芯片的方法
stm32·单片机·嵌入式硬件
BreezeJuvenile5 小时前
外设模块学习(13)——HW-493激光发射模块(STM32实现)
stm32·单片机·学习·hw-493激光发射模块
逆小舟5 小时前
【STM32】第一周学习问题汇总
stm32·单片机·嵌入式硬件
BreezeJuvenile7 小时前
外设模块学习(10)——红外避障模块(STM32)
stm32·单片机·学习·红外避障模块
omnibots7 小时前
瑞萨SDK编译linux时,make menuconfig报错
linux·服务器·前端·嵌入式硬件
古希腊掌握嵌入式的神8 小时前
MCU-DEBUG 通过查看外设寄存器位debug出外设配置是否正常
单片机·嵌入式硬件