在Python中将二进制字符串转换为二进制整数

问题描述 投票:0回答:1

我想通过 SPI 发送二进制数据,因此我将代码构造为二进制字符串常量,代表 SPI 设备上的各种命令和寄存器。

RD = '01'
WR = '10'

MDR0 = '001'
MDR1 = '010'

例如,如果我想写入 MDR0,我会添加两个字符串并以恒定长度格式化它们:

msg = WR + MDR0
msg = int(msg, 2)

msg = [format(msg, '#010b')]
print(msg)
>> ['0b00010001']

我的问题是,现在

msg
str
数据而不是
int
,因此无法使用 spidev 包发送。

bin(int(msg[0],2))

上面的代码也产生了字符串数据类型!如何将此二进制字符串作为二进制整数,并对其进行二进制运算?

python types binary spi
1个回答
0
投票

制作整数位掩码。或这些位来生成 IR 寄存器值:

RD = 0b01 << 6  # bits 6-7
WR = 0b10 << 6

MDR0 = 0b001 << 3  # bits 3-5
MDR1 = 0b010 << 3

msg = bytes([WR + MDR0])
© www.soinside.com 2019 - 2024. All rights reserved.