pyserial中的ser.write()函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pyserial中的ser.write()函数相关的知识,希望对你有一定的参考价值。
我试图使用pyserial库将图像文件的字节数组发送到Arduino。我在Arduino中逐字节地接收数据。但似乎我无法检索Arduino上的字节。例如,它发送一个'255'字符串Arduino接收字节为'2'。
Python代码:
import serial
ser = serial.Serial('/dev/ttyUSB0', 115200, bytesize=8, timeout=0, parity=serial.PARITY_EVEN, rtscts=1)
f = open('image.jpg','rb')
l = f.read()
b = bytearray(l)
for i in range(1,len(b)):
ser.write(str(b[i-1]))
ser.flush()
ser.close()
Arduino代码:
char buffer ; // for incoming serial data
int length = 1;
void setup() {
Serial.begin(115200); // opens serial port, sets data rate to 9600 bps
}
void loop() {
Serial.readBytes(&buffer, length) ;
Serial.println(buffer);
}
答案
您的Python代码将数字作为ASCII字符串发送,而不是发送字节(这是您的Arduino代码所期望的......)。相反,做:
for i in range(1,len(b)):
ser.write(b[i-1])
以上是关于pyserial中的ser.write()函数的主要内容,如果未能解决你的问题,请参考以下文章