【发布时间】:2015-07-21 12:20:55
【问题描述】:
我需要将两个单独的整数从一个 arduino 发送到另一个。距离和沟通都没有问题,但是不知道怎么办。
我需要在 0.2 秒内发送两个整数,每个整数从 -15000 到 15000。
所以一个 arduino 正在发送,另一个正在阅读。
【问题讨论】:
标签: arduino communication send
我需要将两个单独的整数从一个 arduino 发送到另一个。距离和沟通都没有问题,但是不知道怎么办。
我需要在 0.2 秒内发送两个整数,每个整数从 -15000 到 15000。
所以一个 arduino 正在发送,另一个正在阅读。
【问题讨论】:
标签: arduino communication send
你可以试试 Serial.print(int) look at this
对不起我的英语不好
【讨论】:
假设你有两个项目之间的串行链接,你可以
1) 以基于文本的方式发送:
// Sender
Serial.print(value);
// Receiver
int value = Serial.parseInt();
2) 以二进制方式发送:
byte arr[4];
// Sender
for (i=0;i<4;i++)
arr[i] = (value >> (8*(3-i))) & 0xFF;
Serial.write(arr,4);
// Receiver
if (Serial.available() > 4)
{
Serial.readBytes(arr,4);
value = 0
for (i=0;i<4;i++)
value = (value << 8) | (((int)arr[i]) & 0xFF);
}
第一种方式更简单,第二种方式更优化,如果添加一些控件会变得更可靠。
如果您不使用串行通信,则必须更改这些函数(但可能任何接口都允许您发送和接收字节数组,因此几乎可以在任何情况下应用第二个)
【讨论】: