我正在使用WiringPi-Python通过串行发送数据并尝试发送char数组。我的问题是;如果数组包含 0 (NULL char),则无法发送数据。
bytes = [112, 52, 0, 18]
send = "".join(map(chr, bytes))
wiringpi.serialPuts(serial, send)
如何将包含NULL的char数组传递给serialPuts
?
答案 0 :(得分:2)
恕我直言,问题出在图书馆的bindings.i
:
serialPuts()
定义为
extern void serialPuts (const int fd, const char *s) ;
并且在C中,字符串(char*
)由\0
字符终止。我认为这是一个库的错误。它应该是
extern void serialPuts (const int fd, const char *s, int strlen) ;
在循环中尝试wiringpi.serialPutchar()
。