加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python中int数组的unsigned char数组

发布时间:2020-12-20 13:51:39 所属栏目:Python 来源:网络整理
导读:我尝试使用 wiringPi’s lcdCharDef() 在我的2004 lcd上使用覆盆子pi定义一个新角色(大写德语变音符号“?”) 这是我的代码 import wiringpi2 as wiringpi# ?cap_umlaut_a = [ int('0b01010',2),int('0b00100',int('0b01010',int('0b10001',int('0b22222',int
我尝试使用 wiringPi’s lcdCharDef()在我的2004 lcd上使用覆盆子pi定义一个新角色(大写德语变音符号“?”)

这是我的代码

import wiringpi2 as wiringpi

# ?
cap_umlaut_a = [
    int('0b01010',2),int('0b00100',int('0b01010',int('0b10001',int('0b22222',int('0b00000',2)
]

print(cap_umlaut_a) # [10,4,10,17,31,0]

wiringpi.lcdCharDef(lcd_handle,cap_umlaut_a)

当我运行此代码时,我收到以下错误:

TypeError: in method ‘lcdCharDef’,argument 3 of type ‘unsigned char [8]’

我希望这些整数与unsigned chars相同

[编辑]
在代码的不同部分,我使用ord(char)将一个字符转换为unsigned int.这可以导致正确的anser吗?

如何将数组转换/转换为可以接受的类型?

附: (注意(根据我的理解)python wiringPi库只包含wiringPi的C函数)

[编辑]
我在github上打开了一个问题:https://github.com/WiringPi/WiringPi2-Python/issues/20

解决方法

我做了一些研究,发现了相关的python绑定 at this github repo的来源.

这条线是

res3 = SWIG_ConvertPtr(obj2,&argp3,SWIGTYPE_p_unsigned_char,0 | 0 );

正如你所看到的,你必须将指向python的指针传递给unsigned char.根据this thread,等效字节是字节串.这意味着正确的呼叫将是

import struct
wiringpi.lcdCharDef(lcd_handle,struct.pack('8B',*cap_umlaut_a))

这相当于

wiringpi.lcdCharDef(lcd_handle,b'x0Ax04x0Ax11x1Fx11x11x00')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读