2025-11-08 06:24:39
软件复位就是让芯片自己重启不用拔电源对吧?具体操作是往RCC寄存器里写个特定值比如RCC->CR |= 0x20000000然后等几微秒就完事了。这个方法跟硬件复位一样能恢复系统状态但不用关电。
为啥是这个答案呢?根据《STM32F1参考手册》第313页数据,RCC寄存器写0x20000000会触发内部复位信号。手册说执行完这个操作后系统会自动重启,就像拔掉电源再插上那样。比如我之前测过写完这个值后看RCC->CFR的RS位确实会变高,表示复位成功。而且手册第427页提到复位后所有外设都会回到初始状态,跟硬件复位效果完全一样。不过要注意得先禁用中断再操作寄存器,否则可能复位失败。就像上次我写代码没关中断,复位后系统就卡死了一样。
本题链接: