【问题标题】:ESP32 and Raspberry Pi connection issueESP32 和树莓派连接问题
【发布时间】:2021-08-26 19:03:10
【问题描述】:

ESP32 和 Raspberry Pi 之间的串行连接有问题。

我有两个简单的示例代码如下,一个是用python编写的,用于读取RPi中的数据,另一个是通过串口不断发送消息。

import serial
arduino = serial.Serial('/dev/ttyUSB0', 115200, timeout=0.1)
while True:
    data = arduino.readline()[:-2] #the last bit gets rid of the new-line chars
    if data:
        print data

连接后会发生以下情况:

  1. 我激活了python脚本,数据读取正确。
  2. 如果我使用 CTRL+C 关闭脚本
  3. 我再次激活 python 脚本
  4. 没有数据显示
  5. 如果我连接和断开 USB 电缆,也会发生同样的情况。
  6. 如果我重新启动 ESP32,它就会再次开始工作(但我不能不断地重新启动它)。

我也尝试使用 cat 命令,但它只能工作一次,在尝试 CTRL+C 并再次执行后,它不会在命令终端中打印任何内容

cat /dev/ttyUSB0

我在 windows 中使用 arduino 串行终端进行了同样的测试,但它工作正常,连接或断开连接,它总是恢复数据采集。

我是否应该考虑其他一些我在硬件级别看不到的东西?

应该注意端口是活动的,我可以接收数据,问题是当脚本似乎不再接受它时重新启动操作。那么这个端口就不用了吗?

谢谢

【问题讨论】:

    标签: raspberry-pi esp32


    【解决方案1】:

    退出脚本时尝试使用键盘中断正确关闭串口。

    import serial
    
    with serial.Serial('/dev/ttyUSB0', 115200, timeout=0.1) as ser:
        run = True
        while run:
            try:
                data = ser.readline()[:-2] #the last BYTES gets rid of the new-line chars
                if data:
                    print data
            except KeyboardInterrupt: // Responds to ctrl-c
               run = False
    
        ser.close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-22
      • 2016-05-15
      • 2022-01-05
      • 2019-04-04
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 2013-04-09
      相关资源
      最近更新 更多