今天小编要和大家分享的是控制,MCU相关信息,接下来我将从单片机复位电路为什么不能复位_单片机自动复位原因,stm32f0discovery brief这几个方面来介绍。
控制,MCU相关技术文章单片机复位电路为什么不能复位_单片机自动复位原因
单片机自动复位原因
单片机自动复位常见的原因有:
1.掉电或电压过低(我用STC单片机的时候遇到过因为电源电压过低而导致自动复位的情况)
2.程序跑飞或者死机后,由看门狗引发的复位
3.复位引脚接收到复位信号(人工产生或者外部看门狗等电路产生)
4.STC89C52RC单片机在使用汇编语言编程时,出现类似C语言中函数递归的语句时,可以自动复位。这个我在实验时看到过这个现象,但具体原因不明,我没有使用看门狗。
5.有些单片机可以在程序控制下自动复位。
单片机复位电路不能复位的原因
STM32f0按键模块电路经常遇到上电不复位的情况,芯片采用的是stm32f030,按键模块采用ZLG7290芯片、4X4按键LED矩阵。ZLG7290是周立功公司专门开发的按键芯片,其最大可支持64个按键和64个LED,可通过I2C协议对其读写,ZLG7290与stm32f030复位电路采用datasheet参考电路,如下:
正常情况下,电路上电后会有一个LED全部点亮的过程,上电稳定延时后,LED自动全部熄灭,正常运行时,按下相应按键其对应的LED灯应被点亮。
问题:
STM32复位电路内部有自带的上拉电阻,同时PVD的电源检测阈值采用的是默认值2.2V,采用电池供电,电压表测量引脚电压在2.8V左右,但是电路上电后不能正常运行,LED矩阵上电不能被点亮,按键按下后相应LED灯无反应。
测试
stm32f030复位测试
stm32f030上电复位后,程序依次执行初始化的过程,其中包括设置时钟为内部48MHZ时钟频率,设置并启动串口、I2C等,之后执行LED灯全部点亮函数,延时3s关闭所有LED并进入主功能程序。
测试任务:stm32f030是否能复位:
既然上电后LED灯不能全部点亮,则LED灯全部点亮函数不能正常执行,则在此函数之前添加一个UART串口发送函数。
测试结果:
串口发送函数被执行,在超级终端收到正常的数据。