使用uart.alt(1)时UART数据错误

乔纳森

我正在尝试从连接到ESP8266的设备获取rs232数据(然后将通过http / wifi将数据发送给我们)。

我正在使用max3232 IC为ESP8266提供必要的3.3v TTL。

我已经将max3232(pin 12)连接到ESP8266的GPIO pin 13(rx)(我只接收数据,不发送数据,所以只连接了rx引脚)。

我正在使用的代码:

--
--file: test2.lua 
--
tst2 = require "tst2"
tst2.start()


--tst2.lua (testing script)
local module = {}

function module.start()
    print("in tst2.start")
    uart.alt(1)         --use alt GPIO pin 13 (Rx)
    uart.setup(0, 9600,8, uart.PARITY_NONE, uart.STOPBITS_1,0)
    uart.on("data",10, 
        function(data) 
            file.open("data.tmp", "w+")
            file.writeline("starting")
            for i=1,10 do
                 file.writeline(string.byte(string.sub(data,i,i)) )
            end
            file.writeline("from uart: ", data)
            file.writeline("finished")
            file.close()
    end, 0)
    uart.alt(0)         --switch back to standard Rx/Tx pins
end
return module

连接到ESP8266的rs232设备每3秒发出一个字母字符,但是写入文件(data.tmp)的数据如下

starting
10
13
10
13
10
13
10
13
10
13
from uart: 
finished
file.close()

问题:

1- rs232设备未发出任何newln或cr字符,但是这些字符出现在数据文件中。

2-字符串“ file.close()”正在写入数据文件,并且看起来像是最终file.writeline命令后面的实际lua命令。

3-字母数据没有出现在数据文件中。

4-通过uart.alt(0)切换回标准uart引脚不起作用(ESP8266必须重新启动-这不是主要问题,因为标准uart引脚仅在调试期间使用)。

我将rs232数据写入文件中,而不是简单地在屏幕上打印出来(我正在使用ESPlorer v0.2.0),因为uart.alt(1)命令将串行端口重定向到备用ESP8266 gpio引脚。

我认为我在设置uart上犯了一些根本性的错误,但是我不知道这是什么。

乔纳森

解决了:

看来您既无法将ESP8266连接至用于调试的串行端口(例如,运行ESPlorer的PC上的串行端口),也无法将备用串行引脚(ESP8266 GPIO 13和15)连接(至外部串行设备)同时。

nodemcu uart.alt()函数似乎无法“关闭”标准串行I / O引脚。

断开PC与标准串行I / O引脚的连接即可解决此问题(调试成为一个问题,但是有解决方法来解决此问题)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

中断和使用UART

来自分类Dev

使用python通过UART接收数据

来自分类Dev

在Windows中使用C的UART

来自分类Dev

使用UART时,BREAK的实际含义是什么?

来自分类Dev

Linux从UART读取数据

来自分类Dev

Linux从UART读取数据

来自分类Dev

从 GPS Uart 读取数据

来自分类Dev

从 UART 读取

来自分类Dev

Virtual Box使用的UART芯片是什么类型?

来自分类Dev

如何在Orange Pi Zero上使用UART引脚?

来自分类Dev

解析时间分隔的UART数据

来自分类Dev

AVR UART收到数据损坏

来自分类Dev

PIC16F887接收到错误的UART数据

来自分类Dev

UART至UART tcp / ip连接

来自分类Dev

在 UART 上广播和获取数据

来自分类Dev

使用 FTDI 芯片从另一台设备发送到 PC 的 uart 数据包之间的延迟

来自分类Dev

为什么stm32nucleo板uart使用HAL_UART_Receive_IT将近三四百次后仍无法接收消息

来自分类Dev

USB转串口UART

来自分类Dev

蓝牙:Uart还是SPI?

来自分类Dev

实时性能的UART性能

来自分类Dev

Atmel模拟UART通信

来自分类Dev

Linux UART IO文件

来自分类Dev

Linux UART IO文件

来自分类Dev

Altera UART IP内核

来自分类Dev

文件系统和UART

来自分类Dev

使用Hyper-V第2代VM在Linux中配置UART / COM

来自分类Dev

使用Eclipse在STM32 Nucleo中通过UART发送消息

来自分类Dev

如何使用嵌入式C代码通过UART发送转义序列

来自分类Dev

使用 HAL 进行 STM32L0 的 UART 环回测试