请教STM32的复位电路()
admin
2023-07-12 13:43:08

无线上网卡,熊猫M32,

stm32的复位电路可以做成这样,数据表里面说不用加R1!如果不放心,你可以预留R1焊盘,但是不焊。
知乎上面的网友也建议不要r1,如下:
网页链接 你的目的是想进行复位是吗?如果是的话使用两个库函数即可:
__set_FAULTMASK(1);
NVIC_SystemReset();
我的STM32是F103系列,即CPU内核为Cortex M3,这两个函数在core_cm3.h里面都有定义,
__set_FAULTMASK(1);是关闭所有中断的意思,目的是在执行NVIC_SystemReset();复位函数过程中不被中断所打断。
两个函数执行后系统复位重新执行代码,包括之前所配置好的外设寄存器也都回到复位状态。

如果你想要保持之前配置好的寄存器不变的话,那么你再程序跳转之前要先初始化堆栈,而且你程序跳转的地址不对,应该这样:
__set_MSP(*(__IO uint32_t*) 0x08000000); 要先初始化堆栈指针
((void (*) (void)) (*(vu32 *)0x08000004) (); 这句才是程序跳转,注意了,是(*(vu32 *)0x08000004 20~30pF 这个电阻目的是为了降低功耗 说白了就是一个限流电阻
即便没有这个电阻 此电路也没有问题
但是如果做成产品 需长期工作的话 建议加上
大小1k-100k都可以
在别人的电路原理图看到过使用500-1k的 看门狗 外设?是? ADC 看你用的参考电压, 用的是内部参考电压是电源电压。 还有看你接进来的模拟信号的电压是多少范围的? 超过参考电压,最简单的电路, 做分压。 有个状态寄存器。在复位后会表示是上电复位还是软件复位或者外部复位!具体的可以看下7芯片手册!在时钟复位的那章 在复位脚接一只10k电阻到负极,再接一个10μ的电容到正极,可以在这个电容两端并一个轻触开关〔用作手动复位〕

相关内容

热门资讯

拼多多上的手机是正品吗?怎么买... 拼多多平台上面的产品各式各样,有食品,有服饰,有手机电脑等等,有一些朋友买一些生活用品是比较放心的,...