python - 如果我想通过串口向arduino发送数据,我应该一次发送一个长字符串,还是单独发送每个变量?

标签 python arduino

我希望使用 python 通过串行连接将不同的数据类型发送到我的 arduino。我已经设法通过串行线路发送简单的数据,例如字符串,并解析我的arduino代码中的数据,但现在我想发送类似于包含两个整数和一个字符串的结构的内容。

我想我应该构建我想要作为字符串发送的数据,将它们与分隔符标记连接起来,然后在我的arduino代码中解析这个长字符串。这是一次发送更多数据类型的常用方法,还是单独发送变量更好?

最佳答案

是的,总是存在丢失字节的风险。

但是你如何做到这一点完全取决于你发送的数据类型。例如,如果您发送的值在 0 到 255 之间,您可以将该值作为一个字节发送。

另一方面,如果您要发送多个值和/或字符串,则最好使用 ASCII 表中的控制字符来标记序列的开始以及值的分隔和标识。例如 STX“value_id1”US“值”RS“value_id2”US“值”...ETX

如果值的完整性非常重要,您可以计算校验和“CRC”以随消息一起发送,以便接收者可以检查错误。

关于python - 如果我想通过串口向arduino发送数据,我应该一次发送一个长字符串,还是单独发送每个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59794478/

相关文章:

python - 为什么 PySerial 脚本适用于 115200 波特而不是 19200 波特?

python - 如何在满足条件时结束 while 循环

python - Pandas:根据条件增加列中的值

java - 如何使用 runOnUiThread 获取从服务到 Activity 的每次消息

c++ - 挑战 - Arduino 返回多个数组

arduino - 如何在arduino flex传感器中以45度开始点亮?

python - liferay 6.2GA2 使用 python suds 客户端进行 SOAP 验证

python - 如何使用内置的 round() 函数

python - ImportError : No module named sklearn. 预处理

c++ - 如何将 C 库用于 Arduino 代码