python中int数组的unsigned char数组

python中int数组的unsigned char数组,第1张

概述我尝试使用 wiringPi’s lcdCharDef()在我的2004 lcd上使用覆盆子pi定义一个新角色(大写德语变音符号“Ä”) 这是我的代码 import wiringpi2 as wiringpi# Äcap_umlaut_a = [ int('0b01010', 2), int('0b00100', 2), int('0b01010', 2), 我尝试使用 wiringPi’s lcdCharDef()在我的2004 lcd上使用覆盆子pi定义一个新角色(大写德语变音符号“Ä”)

这是我的代码

import wiringpi2 as wiringpi# Äcap_umlaut_a = [    int('0b01010',2),int('0b00100',int('0b01010',int('0b10001',int('0b11111',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 structwiringpi.lcdCharDef(lcd_handle,struct.pack('8B',*cap_umlaut_a))

这相当于

wiringpi.lcdCharDef(lcd_handle,b'\x0A\x04\x0A\x11\x1F\x11\x11\x00')
总结

以上是内存溢出为你收集整理的python中int数组的unsigned char数组全部内容,希望文章能够帮你解决python中int数组的unsigned char数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1197348.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存