逐字节发送数据到串行端口,而不是多个字节



我试图将在Python上计算的数据发送到Arduino,但我认为下面的方法在一个时钟周期内发送整个double。如何将其拆分为一个字节数组并一次发送一个字节?

ser.write(bytes(round(i * double(self.amplitude), 5)))
ser = serial.Serial(
port=self.outputFile,
baudrate=115200,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
for i in created_wave:
ser.write(bytes(round(i * double(self.amplitude), 5)))

我不知道为什么,但我无法使用bytarr[j]表示法访问bytarr的元素,但我使用bytarr[j:j+1]表示法来访问它们。它是这样工作的。

ser = serial.Serial(
port=self.outputFile,
baudrate=115200,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
for i in created_wave:
bytearr = struct.pack('f', round(i * float(self.amplitude), 5)) #4 byte
for j in range(len(bytearr)):
ser.write(bytearr[j:j + 1])

最新更新