记录一次STM32重启事件
记录一下一种 判断重启原因的方法:
这里涉及到一个控制/状态寄存器(RCC_CSR)
可以通过在程序中添加读取
该寄存器的数值来判断可能是哪种原因引发的重启。
void static read(void)
{
volatile unsigned long *reg = (volatile unsigned long *)(0x40021024);
unsigned long val;
val = *reg;//读取0x40021024地址中的数据
printf("%lu\r\n",val);
}
如何确定所读取的地址是多少,需要结合STM32的手册。比如我这边读取的是RCC_CSR寄存器中的数值,看手册可得知起始地址,再根据图2中的偏移地址,可以得出最终需要读取的地址。
(小白,求轻喷。谨以此记录我的一次愚蠢的纠结经历,也希望通过记录来提醒自己,少走弯路。)
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-258a4616f7.css" rel="stylesheet">
</div>