我有一个关于使用pySerial Python库发送和接收多个数据的问题。据我所知,串口通信是用字节变量进行的。在
我如何用方法write
发送四个不同的变量,然后用方法read
接收两个不同的变量?在
例如:
import serial
import time
sendSerial = serial.Serial ("COM4", 9600)
readoutSerial = serial.Serial ("COM4", 9600)
time.sleep (2)
sendSerial.write ("data1" + "data2" + "data3" + "data4")
while True:
readoutSerial.read ("data5" + "data6")
我应该如何发送带有write
的四个变量,并将它们分别用于每个变量?(对使用read
接收的两个变量应用相同的方法)另外,如何将变量作为float
发送,而不与{
如果要传输文本,最简单的方法是选择一些字符来分隔单个字符串,它可以是\n(换行符)、逗号或其他任何字符。在
在python中阅读文本如下所示:
^{pr2}$在arduino上,您将阅读如下字符串(原始示例):
或者,如果您不介意在Arduino上使用字符串(您很可能不介意),那么最好使用readStringUntil函数:
在python中,您甚至可以将数值转换为文本:
在Arduino一侧,您可以接收如下字符串形式的数字:
如果您需要传输结构化的二进制数据,python有一个名为struct的模块,这是在python中推荐的方法。在arduino方面,您很可能需要手动地洗牌字节。例如,int16的接收方式如下:
在线程化库中使用互斥体(锁),以避免发送/接收冲突,例如以下代码:
相关问题 更多 >
编程相关推荐