Python 使用PyUSB发送大于127的字节值

Python 使用PyUSB发送大于127的字节值,python,pyusb,Python,Pyusb,我正试图通过USB将Windows10PC上的Python3.5程序中的一些数据发送到TM4C微控制器,我正在使用PyUSB 问题在于,每当字节值超过127(0x7f)时,PyUSB就会在该字节之前再添加一个字节,有时还会更改原始值。 下面是我用来发送数据的代码部分 def send_data(data): # data is list of integers message = ''.join(chr(i) for i in data)

我正试图通过USB将Windows10PC上的Python3.5程序中的一些数据发送到TM4C微控制器,我正在使用PyUSB

问题在于,每当字节值超过127(0x7f)时,PyUSB就会在该字节之前再添加一个字节,有时还会更改原始值。 下面是我用来发送数据的代码部分

def send_data(data):                        # data is list of integers
    message = ''.join(chr(i) for i in data)
    TivaC.epOut.write(message)              #TiVaC is USB object
一些数据包如下所示:

发送..0x66 0x12 0x0 0x0 0x0 0x6
接收0x66 0x12 0x0 0x0 0x0 0x6
新消息
正在发送..0x66 0x12 0x0 0x7f 0x0 0x6
接收0x66 0x12 0x0 0x7f 0x0 0x6
新消息
正在发送..0x66 0x12 0x0 0x80 0x0 0x6
接收0x66 0x12 0x0 0xc2 0x80 0x0 0x6
损坏的数据包
正在发送..0x66 0x12 0x0 0x0 0xbf 0x0 0x6
接收0x66 0x12 0x0 0xc2 0xbf 0x0 0x6
损坏的数据包
正在发送..0x66 0x12 0x0 0xc0 0x0 0x6
接收0x66 0x12 0x0 0xc3 0x80 0x0 0x6
损坏的数据包
正在发送..0x66 0x12 0x1 0xf4 0x0 0x6
接收0x66 0x12 0x1 0xc3 0xb4 0x0 0x6
损坏的数据包
正在发送..0x66 0x12 0x3 0xe8 0x0 0x6
接收0x66 0x12 0x3 0xc3 0xa8 0x0 0x6
损坏的数据包

问题只存在于从PC发送到微控制器的过程中。微控制器总是正确发送所有字节。我已经检查过了。

我猜它将字符串编码为UTF8-因此,值超过127的两个字节。但是,我不知道如何对它进行排序(有字节的东西?),所以这不是答案。你应该在这里使用字节对象(
b'
),而不是字符串。添加@jasonharper:如果你收到
列表
int
,你可能想更改
消息=''。加入(chr(I)表示数据中的I)
消息=字节(数据)
它可以处理字节对象。谢谢大家!