pyserial python 中的 MSB(最高有效位)发送到损坏的 arduino uno

The MSB (most significant bit ) in pyserial python sent to arduino uno in damged

我正在尝试从 python 串行端口向 arduino uno 发送一个简单的位。

import time
import serial
ser = serial.Serial(
    port=5,
    baudrate=9600,
    parity=serial.PARITY_ODD,
    stopbits=serial.STOPBITS_TWO,
    bytesize=serial.SEVENBITS
)
out=''
input=119
input= chr(input)
ser.write(input)
while ser.inWaiting() > 0: # reading input from the serial port
        out += ser.readline()
if out != '':
print "output from arduino is:" + out# printing the output from the serial port

A​​rduino中的代码是这样的:

void serialEvent()  // called every time a command is recieved on the serial port
{
unsigned char input;
input= Serial.read();
Serial.println(input,BIN);
}

119 的二进制表示是:01110111 这行代码的输出是-11110111 所以 arduino 似乎有些如何将 MST 位(8 位)从 0 更改为 1。 知道为什么吗?是因为 Unicode 还是编码?感谢您的帮助!

行:

bytesize=serial.SEVENBITS

…建议您只能发送 7 位字节,因此第 8 位由 Arduino 添加。

只需丢弃 Arduino 代码中的第 8 位即可。