【问题标题】:NodeMCU - enable UART1/2 on ESP32NodeMCU - 在 ESP32 上启用 UART1/2
【发布时间】:2019-04-29 06:43:33
【问题描述】:

我已按照此处所述构建固件:https://nodemcu.readthedocs.io/en/dev-esp32/build/

但我无法让硬件 UART 1 或 2 工作。是否必须启用任何特定组件(默认情况下未启用)才能使其正常工作?

这是我的测试代码:

uart_id = 2

local function on_data(data)
    print("IN: ", tostring(data))
end

local function on_error(data)
    print("ERR: ", tostring(data))
end

local cnt = 0;
local function on_timer()
    print(". "..cnt)
    cnt = cnt + 1
    uart.write(uart_id, "# " .. cnt .. "\n")
end

local tmrObj = tmr.create()
tmrObj:register(5000, tmr.ALARM_AUTO, on_timer)
tmrObj:start()

uart.setup(uart_id, 115200, 8, uart.PARITY_NONE, uart.STOPBITS_1, 1)
uart.on(uart_id, "data", '\r', on_data)
uart.on(uart_id, "error", on_error)
uart.setmode(uart_id, uart.MODE_UART)
uart.start(uart_id)

【问题讨论】:

    标签: nodemcu esp32


    【解决方案1】:

    固件正常,uart.setup 不正确。 PIN 丢失,并且由于某种原因默认 PIN 不起作用,这个很好:

    uart.setup(uart_id, 115200, 8, uart.PARITY_NONE, uart.STOPBITS_1, {rx = 16, tx = 17})
    

    【讨论】:

    • 太好了,你已经解决了。如果您认为我们的文档缺少某些内容,请提出 PR 以改进它。
    • 文档建议,在设置方法中引脚是可选的,这可以改进。我知道您可以分配任何 PIN,但您可以从 {rx = 17, tx = 16} 切换到 {rx = 16, tx = 17},在这种情况下,文档将反映开发板上的标记。
    猜你喜欢
    • 1970-01-01
    • 2022-06-15
    • 2021-04-14
    • 2017-09-13
    • 2022-10-14
    • 2021-04-05
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多