gpt4 book ai didi

python - 从 Python+Pyserial 向 Arduino 发送串行数据时出错

转载 作者:太空宇宙 更新时间:2023-11-03 16:36:23 25 4
gpt4 key购买 nike

对于这一切,我使用的是 Windows 7、Python 2.7.3 和 Pyserial 2.6。我的 Arduino 使用 COM6。

我试图将数据从 Python 程序发送到 Arduino 进行读取,但它不断返回“SerialException 错误。

这是Python代码:

import serial
import time
ser = serial.Serial('COM6', 9600, timeout=0)
var = raw_input("Enter something: ")
ser.write(var)
while 1:
try:
print ser.readline()
time.sleep(1)
except ser.SerialTimeoutException:
print('Data could not be read')

这是 Arduino 代码:

int incomingByte = 0;

void setup(){
// Open serial connection.
Serial.begin(9600);

}

void loop(){
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();

// say what you got:
Serial.print("I got: "); // ASCII printable characters
Serial.println(incomingByte, DEC);
}

}

这是我运行脚本时在 Python 中遇到的错误:

Traceback (most recent call last):
File "C:/Users/admin/Desktop/test", line 3, in <module>
ser = serial.Serial('COM6', 9600, timeout=0)
File "C:\Python27\lib\site-packages\serial\serialwin32.py", line 34, in __init__
SerialBase.__init__(self, *args, **kwargs)
File "C:\Python27\lib\site-packages\serial\serialutil.py", line 261, in __init__
self.open()
File "C:\Python27\lib\site-packages\serial\serialwin32.py", line 62, in open
raise SerialException("could not open port %s: %s" % (self.portstr, ctypes.WinError()))
SerialException: could not open port COM6: [Error 5] Access is denied.

如何解决该错误? Python 可以很好地从 Arduino 读取数据,但不能写入。

最佳答案

除了确保端口关闭之外,还有一些需要注意的事情......

  • 使用 PySerial 发送的数据只能是 byte 类型(对于超过 1 字节的数据,则为 bytestream)。您无法按原样发送用户输入。

  • 写入后flush()数据

关于python - 从 Python+Pyserial 向 Arduino 发送串行数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37169006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com