我正在使用 Arduino 发送超过 3 个旋转轴和 3 个按钮状态。目前我正在将其格式化为如下字符串:
“#235#12#32$TlR”
前 3 个数字是旋转,t、l、r 是按钮,其中大写字母告诉我按钮是否被按下。
我正在使用以下方式将数据写入 com 端口:
Serial.println
使用我的电缆一切都很好,但是当我切换到蓝牙(我连接了一个模块)时,旋转有很大的延迟。
该字符串是否太大,无法通过蓝牙以每秒 30 次的速率发送?有没有办法将我的数据格式化为较小的包?
非常感谢!
最佳答案
二进制肯定会更小 - 假设每个轴都适合一个字节,按钮适合一个 8 位位字段,您可以将 14 字节 bpackage 缩小为 3 或可能 4 字节(也许添加某种帧)。这显然会将使用的带宽减少至少 3 倍(但是会使您的程序复杂化。如果所有内容都适合字节,那么您至少不会遇到平台字节顺序问题)
通过蓝牙,在接近理想的条件下,您可以期望约 80kbit/s 的带宽。 - 20 * 30 字节/秒应该很容易实现,即使您坚持使用现有的 ASCII 协议(protocol)。
关于c - 字符串是发送此数据的最有效方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987928/