1

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

from machine import Pin
OUT = Pin.OUT

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

a = Pin(1, OUT)

它会挂在那里:

截屏

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

这是我目前的设置:

照片 1 照片 2

这些是我打算使用的变量和引脚号:

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)

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

我的设置受到此视频的启发。我对他的设置感到奇怪的是,每个引脚都配置为数字输出。这种设置不需要接地引脚吗?

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

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 似乎加载正常,但是当我到达 digit4 时,我得到以下输出:


 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.
>>>
4

1 回答 1

1

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

于 2020-07-17T12:15:27.023 回答