如何解决Expressif esp8266 开发套件 c 的 GPIO 映射
我是 Lua、NodeMCU 的新手,尤其是 Expressif esp8266 Dev Kit C。
我能够构建固件并将其闪存到开发套件以及 Wemos D1 mini。
但是说到简单的 GPIO 示例和测试(LED 闪烁),我可以在我的 Wemos D1 上运行它,但不能在 Expressif ESP8266 开发套件上运行。对于 Wemos,NodeMCU gpio 文档中给出的 GPIO 映射工作正常,但我似乎无法为我的 ExpressIf 套件找到正确的映射。
为此,我使用 sp8266 datasheet 查找合适的 GPIO 引脚,查找其功能,然后使用 NodeMCU gpio 文档中的映射来查找驱动 GPIO 引脚的索引。
示例: ESP8266 pin: 16 --> ESP8266 pin function: GPIO4 --> NodeMCU ESP8266 pin: GPIO4 --> NodeMCU IO index: 2
然后我连接 LED(阳极连接到引脚 16,阴极连接到 GND 引脚)并运行脚本 - 但没有任何反应,即使脚本运行愉快......
输出显示了预期的“正在运行...”,然后是“高”和“低”,频率为 1 秒。
脚本:
-- Config
local pin = 2 --> GPIO4
local value = gpio.LOW
local duration = 1000 --> 1 second
-- Function toggles LED state
function toggleLED ()
if value == gpio.LOW then
value = gpio.HIGH
print("high")
else
value = gpio.LOW
print("low")
end
gpio.write(pin,value)
end
-- Initialise the pin
gpio.mode(pin,gpio.OUTPUT)
-- Create an interval
local timer = tmr.create()
timer:alarm(duration,tmr.ALARM_AUTO,toggleLED)
print("running")
我做错了什么?
解决方法
马塞尔的评论让我走上了正确的道路:
ESP8266 的引脚 12 是 GPIO 引脚,但我不能使用功能描述(GPIO 13)而是引脚编号(即 12)在 NodeMCU 文档中查找正确的索引号。
因此,ESP8266 引脚 16 的正确索引号是 0,而不是 2:
-- Config
local pin = 4 --> GPIO4
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。