首页 > 解决方案 > 从 ESP32 读取数据到 Python 的问题

问题描述

我有一个问题,我正在尝试通过 ESP32 读取在 Arduino IDE 上制作的代码,但打印的数据显示为b''我尝试使用 Arduino UNO 而不是 ESP32 使用相同的代码,并且效果很好。这是代码:

# -*- coding: utf-8 -*-
"""
Created on Fri Mar  5 20:28:19 2021

@author: Andres
"""
import serial

arduino = serial.Serial('COM8', baudrate=115200, timeout=1.0)

    
while(True):
  line = arduino.readline().decode('utf-8')
  print(line)
  

这是 ESP32 代码(只是通过串口发送数字):

int16_t x=33;
void setup() {
  // put your setup code here, to run once:
Serial.begin(115200);

}

void loop() {
  // put your main code here, to run repeatedly:

Serial.println(x);
delay(100);

x=x+1;
if(x==97)
{
x=32;
}

}

我必须说我已经尝试过波特率 9600 和 115200。我在其他计算机上尝试过并更改端口名称,但它没有用。

标签: pythonarduinoesp32

解决方案


您需要在打开端口之前将RTSDTR设置为:False

import serial

ser = serial.Serial()
ser.port = 'COM11'
ser.baudrate = 115200
ser.setDTR(False)
ser.setRTS(False)

ser.open()

while True:
    b = ser.readline()
    print(b)

推荐阅读