ESP8266 rshell repl 冻结

ESP8266 rshell repl freezes

我想在尝试连接到我的 ESP8266 的七段 4 位显示器之前定义一些引脚变量。在解释器上,以下代码行工作正常,并且不会引发任何错误:

from machine import Pin
OUT = Pin.OUT

每当我尝试使用 machine.Pin class 定义一个 pin 变量时,整个 repl 冻结:

a = Pin(1, OUT)

它会挂在那里:

我已经在两个独立的 ESP8266 板上尝试过,所以问题不太可能与板焊接不良有关...

这是我当前的设置:

这些是我打算使用的变量和密码:

from machine import Pin
OUT = Pin.OUT

a = Pin(1, OUT)
b = Pin(3, OUT)
c = Pin(15, OUT)
d = Pin(13, OUT)
e = Pin(12, OUT)
f = Pin(14, OUT)
g = Pin(2, OUT)
dec = Pin(0, OUT)

digit1 = Pin(4, OUT)
digit2 = Pin(5, OUT)
digit3 = Pin(16, OUT)
digit4 = Pin(10, OUT)

我四处寻找,没有找到任何符合我情况的东西。也许我试过的两块板都焊接不好?

我的设置灵感来自 this video。 我发现他的设置有些奇怪,因为每个引脚都配置为数字输出。此设置是否不需要接地引脚?

更新(是的,在写这篇文章时 post): 我已将我的代码更改为以下内容:

from machine import Pin
OUT = Pin.OUT

digit1 = Pin(4, OUT)
digit1.on()

digit2 = Pin(5, OUT)
digit2.on()

digit3 = Pin(16, OUT)
digit3.on()

digit4 = Pin(10, OUT)
digit4.on()

数字 1 到 3 似乎加载正常,但是当我到达数字 4 时,我得到以下输出:


 ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x40100000, len 31088, room 16
tail 0
chksum 0x44
load 0x3ffe8000, len 1028, room 8
tail 12
chksum 0x1e
ho 0 tail 12 room 4
load 0x3ffe8410, len 824, room 12
tail 12
chksum 0x89
csum 0x89
���2�n��s��N|�$l$l`c��|{��l�N��N�d ��r�l�l2�$`��s�p��l�l`��{�p���� l`rl���c ���c#��c|l#���B|����l$b��N�2Nn� �$N� ��$�� $l����l`�n� ����Bll����2"��l�crls$r�o�� � ��o����"�����#��
MicroPython v1.12 on 2019-12-20; ESP module with ESP8266
Type "help()" for more information.
>>>

如评论中所述,引脚 1 和 3 是用于串行通信的 tx0、rx0,因此在串行传输期间不可用。引脚 6-11 用于闪存通信,因此根本不可用。在这里查看引脚分配 table... https://tttapa.github.io/ESP8266/Chap04%20-%20Microcontroller.html