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
Arduino中的代码是这样的:
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 位即可。
我正在尝试从 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
Arduino中的代码是这样的:
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 位即可。