字符串是发送此数据的最有效方式吗?

时间:2016-03-14 12:45:43

标签: c bluetooth arduino serial-port

我使用Arduino发送超过3轴的'旋转和3个按钮状态。目前我将其格式化为如下字符串:

"#235#12#32 $ TLR"

3个第一个数字是旋转,t,l,r是按钮,首都告诉我按钮是否被按下。

我使用以下方法将数据写入com端口:

  

Serial.println

一切都很好用我的电缆,但当我切换到蓝牙(我有一个模块连接到它)时,旋转有很大的延迟。

字符串是否太大,无法通过BlueTooth以每秒30次的速度发送?有没有办法在较小的包中格式化我的数据?

非常感谢!

1 个答案:

答案 0 :(得分:0)

二进制肯定会更小 - 假设每个轴都适合一个字节而按钮变成一个8位的位域,你可以将你的14字节bpackage缩小为3个或可能是4个字节(可能会添加某种帧)。这显然会将使用的带宽减少至少3倍(但是会使你的pogram变得复杂。如果所有内容都符合字节,你至少不会遇到平台字节顺序的问题)

从蓝牙,您可以在接近理想条件下,预计带宽约为80kbit / s。 - 即使你坚持使用你拥有的ASCII协议,也很容易实现20 * 30字节/秒。