我想通过 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))
上面的代码也产生了字符串数据类型!如何将此二进制字符串作为二进制整数,并对其进行二进制运算?
制作整数位掩码。或这些位来生成 IR 寄存器值:
RD = 0b01 << 6 # bits 6-7
WR = 0b10 << 6
MDR0 = 0b001 << 3 # bits 3-5
MDR1 = 0b010 << 3
msg = bytes([WR + MDR0])