|
STM32F107 复位标志问题 0 k0 [; E0 O5 a% k* p. @4 G! Z0 u 前言, o- A, B, M, s+ @8 W8 M 本篇讨论了STM32F107 中RCC_CSR 寄存器中PINRSTF 标志置位的问题。 问题: 某用户使用STM32F107 产品进行设计。在使用程序入口处,会判断RCC_CSR 中的标志来确定上次) W, u# C7 ~1 \ 复位的类型。然而,用户发现其中的PINRSTF 标志即使在NRST 引脚并未被外部信号拉低时,也会被 置起,从而引起判断出错。 D9 的存在 IO 口实际处于Floating 状态。此时,采样此通道上电压似乎应当是一个不确定的值才对。( H9 |" g+ M2 F" _ h/ V4 L 分析:8 j* R! S0 w+ L# A 在参考手册中,关于RCC_CSR 寄存器的描述如下:+ y; x3 I! D Z- V/ m- F$ P6 O
& E7 I# H0 h/ d% ?! D/ _- | 表面看来,对各复位源的分割是很清楚的。 然而,在分析NRST 引脚造成的复位时,还需要查看复位电路的框图。
6 F7 l$ I/ ]6 d$ O/ [ 从上图可以看出,当发生其他复位例如看门狗复位时,同样会在NRST 引脚上送出一个至少20us 的低 脉冲。在文档中对这一点也有明确说明。+ x8 K" F q: t 而复位标志PINRSTF 在内部设计中,只要是其上有低电平,就会被置位。因此,当发生其它复位时,8 b% ?* V% n& L0 C, z 该位也有可能被置位。关于这一点,在手册中的说明不够符合国内客户习惯,容易造成误解。 那么如何判断复位源呢? 考虑到上述因素,程序中只要略加判断就可以处理,即:: F0 K3 B5 {5 v 首先判断是否有其它标志被置起。例如,同时有看门狗复位标志和PINRSTF 标志置位,则表明是看门" H: E/ A$ h5 U 狗复位。 若仅有PINRST 标志被置位,则表明是NRST 引脚被拉低产生的复位。 , A- y' Q0 `) U: ], W( r 文档下载地址: https://www.stmcu.org.cn/document/list/index/category-1032 H4 ?4 U) O6 @* M3 u3 R, X 实战经验汇总: https://www.stmcu.org.cn/module/forum/thread-576401-1-1.html |
| 是啊主要看标志 |
| 学习 |
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
微信公众号
手机版