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

标签 python python-2.7 arduino serial-port arduino-uno

我正在尝试从 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 位字节,因此 Arduino 将添加第 8 位。

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

关于python - 发送到arduino uno的pyserial python中的MSB(最高有效位)已损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31898155/

相关文章:

python - Python 中二维矩阵的单元分配,没有 numpy

python-2.7 - 如何使用带有 I2C 的 Raspberry Pi 从 Arduino 读取数据

c++ - Arduino C++ 中类似字典的数据结构

Python - 解压两个索引数据框

android - 管理蓝牙连接安卓

python - 使用 HTML 调用 python 函数

python - 如何通过 geckodriver 在 Python 中使用 selenium 获取文本

python - 如何在Python中列出一个对象的所有属性?

python - pyx 模块 : how to make color transparent

python - 程序与 map() 一起工作,但通过 pool.map() 引发 TypeError