如何通过包含NULL char的串行发送char数组?

时间:2017-12-13 00:25:52

标签: python raspberry-pi3 wiringpi

我正在使用WiringPi-Python通过串行发送数据并尝试发送char数组。我的问题是;如果数组包含 0 (NULL char),则无法发送数据。

bytes = [112, 52, 0, 18]
send = "".join(map(chr, bytes))
wiringpi.serialPuts(serial, send)

如何将包含NULL的char数组传递给serialPuts

1 个答案:

答案 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()