gpt4 book ai didi

Arduino二进制串行数据输入

转载 作者:行者123 更新时间:2023-12-01 07:46:14 25 4
gpt4 key购买 nike

我有一个串行流,我正在尝试读取它并从中获取一些变量。输入是串行的,9600,八个数据位,没有奇偶校验和两个停止位。数据是二进制的。

所以传入的字节可能看起来像 00001001。其中包含三个变量。0是第一个,000是第二个,1001是第三个。

如果这条消息是给我们的(它是一个 ID,只有两个 ID),第一个是有效的。第二个告诉我们数据的位置(我们正在构建一个四位十进制数)。第三个以十六进制告诉我们该位置的数据是什么。

所以,00001001 = 9xxx

要使 ID#1 为 9999,二进制流将如下所示00001001000110010010100100111001

我从哪里开始?如何将数据存储到变量中?

最佳答案

假设您想无休止地这样做:

byte id         = 0;
byte digit = 0;
char data[2][4] = { { -1, -1, -1, -1 }, // data[id][digit]
{ -1, -1, -1, -1 } }; // -1 means has yet to be set

while (true) // endless read loop
{
if (Serial.available()) // check if it is for us
{
id = Serial.peek() >> 7;
digit = (Serial.peek() & 0x7F) >> 4; // get data position
if (digit < 4)
{
data[id][digit] = Serial.read() & 0x0F; // store data
}
}

// Do your stuff with the data here.
}

关于Arduino二进制串行数据输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13944352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com