python - 从 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。我在其他计算机上尝试过并更改端口名称,但它没有用。
解决方案
您需要在打开端口之前将RTS和DTR设置为: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)
推荐阅读
- c++ - 模板类未通过对重载运算符错误的未定义引用进行编译
- python - 更改熊猫中多个数据帧上所有行的列数据的最佳方法?
- node.js - 通过 Discord 的会员筛选后,如何为会员添加角色?
- java - 将坐标保存到文件
- python - 如何格式化从 Django 中的 API 调用的数字?
- java - 找不到符号:Hbox、Vbox
- xamarin - 如何在 Xamarin 的 listviewmodel 中保存项目,以便当我退出应用程序并再次打开它时,它会打开用户输入的项目
- php - 如何将具有键值对的对象转换为对象数组
- selenium - 在没有 Selenium 的情况下使用 ChromeDriver
- reactjs - 运行 React Js 作为 ajax 调用的响应