一、背景在使用pyWiFi-ESP32 开发板做点亮一个点亮 LED 蓝灯的基础实验时想尝试用 “Ctrl D” 软件复位开发板让蓝灯灭掉但是没有熄灭。于是又按下按键RST复位这时蓝灯熄灭了。我本来以为软件复位和按键RST复位的硬件手段复位一样可以让设备完全初始化回到“一张白纸”的状态。但是查询资料发现软件复位通常会保持外设和状态。所以Ctrl D后连接蓝灯的引脚仍然保持高电平灯还是亮着的。二、ctrld复位开发板和按键RST的区别CtrlD 操作软复位Soft ResetCtrlD实际上执行的是一种软复位操作。在这个过程中Thonny 向连接的开发板发送重启命令通常相当于在代码中调用machine.reset()。在这个过程中开发板的 Python 解释器重新启动但会保留一些状态如 MCU微控制器硬件状态、引脚配置等并重新加载程序。此时如果有代码用于初始化 GPIO 状态、打开 LED 等则在复位后会重新执行。优点保持了串口连接方便调试和实时反馈。不需要物理接触设备快速高效。RST 按键硬复位Hard Reset按下RST按键会直接触发硬复位通常是通过切断设备的电源线来实现的。这种复位是一个完全的重启所有状态都会被清除包括程序运行状态和内存中的所有数据。在硬复位后开发板会清除所有寄存器的设置所有 GPIO 配置恢复至默认通常是输入状态执行完全的初始化没有机会重新运行先前的代码直到系统启动并加载main.py或boot.py。优点更彻底的重置适合解决一些因代码问题或设置错误导致的设备不响应的情况。