labplus-cn / mpython

mpython掌控板文档和固件源码
MIT License
129 stars 54 forks source link

使用machine.reset()和按下复位键的效果不同 #22

Closed yaoc15 closed 4 years ago

yaoc15 commented 4 years ago

我的掌控板中的main.py代码如下:

from machine import UART
import machine

onlineMode = False
f = open('mode.py')
text = f.read()
f.close()
if text == "1":
    onlineMode = True
while onlineMode:
    uart = UART(1, baudrate=9600, rx=3, tx=1)
    file = open("mode.py", "w")
    file.write("0")
    file.close()
    machine.reset()

按照文档使用machine.reset()是可以重起掌控板但是不能恢复REPL模式,但是按下复位键是可以恢复REPL模式的,是什么原因呢

lgnativs commented 4 years ago

@yaoc15 确实是不同的,使用复位键对于ESP32芯片是属于硬复位,而machine.reset()是软复位.软复位的时候,部分存储器和寄存器的内容并不会重置.详细的内容请参阅:

3.复位和时钟