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

How to send a char array over serial which includes a NULL char?

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

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

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

恕我直言,问题出在库的 bindings.i 中:

serialPuts() 定义为

extern void serialPuts (const int fd, const char *s) ;

在 C 中,字符串 (char*) 以 [=15=] 字符结束。我认为这是图书馆的一个错误。应该是

extern void serialPuts (const int fd, const char *s, int strlen) ;

循环尝试 wiringpi.serialPutchar()