首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何利用Nodemcu (Lua)进行多路串行通信

如何利用Nodemcu (Lua)进行多路串行通信
EN

Stack Overflow用户
提问于 2020-03-29 18:39:06
回答 1查看 2.1K关注 0票数 2
代码语言:javascript
运行
复制
____________
|          |
|   N      |
|   O   Rx2|<------Tx EnergyMeter(Returns value based on command)
|   D   Tx2|------>Rx EnergyMeter(Receive command)   
|   E      |
|          |
|   M   Rx1|<------Tx Gsm(For MQTT)
|   C   Tx1|------>Rx Gsm(For MQTT)
|   U      |
|          |
-----------

我正在尝试连接Gsm模块和能量计与我的Nodemcu,如图所示。虽然这是可以通过Arduino编码,但我想做它只使用lua。

对于lua脚本,如果我使用"uart.alt()“这个函数,然后单击"Save”,那么在"uart.alt()“行中,保存过程会跳转到不同的uart.alt,并且代码不会完全保存到ESP。

在nodemcu (类似于arduino中的软件系列)中使用多个usart的有效方法是什么?

代码语言:javascript
运行
复制
I am using
Nodemcu model : ESP8266
Nodemcu Version : 3
& NodeMCU custom build by frightanic.com branch: 1.5.4.1-fina

我没有得到任何完美的例子,符合我的要求。所以,请给我一个关于这个问题的完美的文档或例子。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-29 21:16:07

你没有给出你的NodeMCU,但由于ESP32上没有uart.alt,我想是8266

因此,如果您的NodeMCU是一个ESP8266,那么您的设置就会出现问题:

来自ESP8266文档化

尽管NodeMCU可以使用两个UART (0和1),但UART 1是不能接收数据的,因此只能进行传输。我不是LUA方面的专家,但我想这是编译器想要告诉您的。

是的,有一个ESP32版本的NodeMCU,OP只是说他使用NodeMCU,没有提供更多的信息。

代码语言:javascript
运行
复制
uart.alt()  Change UART pin assignment. 

-means您可以分配UART 0的引脚。

代码语言:javascript
运行
复制
 uart.alt(on)
Parameters

on

0 for standard pins
1 to use alternate pins GPIO13 and GPIO15

因此,这只适用于NodeMCU ESP8266上的一个uart (UART 0)。

如果使用基于ESP32的NodeMCU

启用UART 1会导致ESP32崩溃!原因是,在默认情况下,UART 1使用与ESP32闪存相同的引脚。

见官方NodeMCU ESP32开发板的文档

因此,在提出问题时,一定要给出NodeMCU的版本和板类型。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60919044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档