STM32单片机上电后,我们经常需要查询它此前是通过什么原因复位的。只有清楚复位原因,我们才能针对性地排除故障和处理问题。
查询STM32的复位原因,我们可以直接读取RCC控制寄存器里面的复位标志位。各个标志位表示不同的复位原因,我们一个一个检查就行。检查完一个标志位要记得清除它,否则下次开机还会认为是那个原因复位的。
如下:
```c
void get_resert_status(void)
{
if( READ_BIT(RCC->CSR, RCC_CSR_FWRSTF) != RESET)
{