Raspberry pi 将整数转换为二进制以进行SPI传输
我试图将一个整数转换为3字节,通过SPI协议发送,以控制串行芯片。我正在使用Raspberry pi 将整数转换为二进制以进行SPI传输,raspberry-pi,spi,Raspberry Pi,Spi,我试图将一个整数转换为3字节,通过SPI协议发送,以控制串行芯片。我正在使用spi.xfer2(),但无法使其按预期工作 在我的代码中,我可以调用spi.xfer2([0b00000000,0b11101100,0b10000000])它在我的显示器上显示字母“H”,但当我尝试转换此79616的int值时,它没有给出正确的输出: val=79616 spi.xfer2(val.to_字节(3,'little')) 到目前为止,我的完整代码已经打开,为了比较,这是我的工作 更多细节 我有一个管子
spi.xfer2()
,但无法使其按预期工作
在我的代码中,我可以调用spi.xfer2([0b00000000,0b11101100,0b10000000])
它在我的显示器上显示字母“H”,但当我尝试转换此79616
的int值时,它没有给出正确的输出:
val=79616
spi.xfer2(val.to_字节(3,'little'))
到目前为止,我的完整代码已经打开,为了比较,这是我的工作
更多细节
我有一个管子,它附带了一些用于ESP32板的管子。驱动模块有一个20输出串行芯片来驱动真空管
要将“H”发送到第二个网格位置(因为第一个网格仅显示点或破折号),位将按OUT19-->OUT0的顺序发送到MAX6921,因此使用下表中的LSB。字母“H”具有int值79616
我可以使用以下方式通过SPI手动成功发送:
spi.xfer2([0b00000000,0b11101100,0b10000000])
我遇到的问题是试图将字符串中的其他字母转换为正确的位。我可以检索字符串中任何字符(0-9,A-Z)的整数值,但无法解决如何将其转换为spi.xfer()
/spi.xfer2()
我的代码
def显示写入(val):
spi.xfer2(val.to_字节(3,'little'))
#在网格位置上循环
def更新_显示()
全球网格索引
val=网格[grid_index]|字符到代码(消息[grid_index:grid_index+1])
显示/写入(val)
网格索引+=1
如果(网格索引>=9):
网格索引=0
到目前为止,我的代码的完整源代码已打开
MAX6921数据输出引脚到IV-18管引脚的映射:
一点
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8.
7.
6.
5.
4.
3.
2.
1.
IV-18
G9
八国集团
七国集团
G6
G5
G4
G3
G2
G1
A.
B
C
D
E
F
G
数据处理
MAX6921
0
1.
2.
3.
4.
5.
6.
7.
8.
9
10
11
12
13
14
15
16
17
18
19
这是一个一般的编程问题,不是一个特定于Pi的问题。@joan道歉-我不知道在我使用spidev的方式中是否有特定于RPi的东西。您是否可以标记将此迁移到SO,或者我最好关闭此文件并在此处打开一个新问题?这是否回答了您的问题<代码>用于映射中的i(lambda y:int({:08b})。格式(y)[::-1],2),int(79616)。to_字节(3,'little'):打印(“%02x”%i)-->
00ec80
,这是您想要的。