当前位置: 首页 > 知识库问答 >
问题:

串行字节流移位数组元素(处理

堵宏毅
2023-03-14

我正在使用Processing通过串行端口向Arduino卡发送字节数组。我遇到了一个奇怪的问题,Arduino似乎无法“同步”读取数组——字节元素似乎已转移到Arduino代码。

例如,从处理I发送阵列:

array = [0, 1, 2, 3, 4];

Arduino可以将其解读为:

array = [2, 3, 4, 0, 1];

这个问题是随机出现的——我尝试了大约1/3次,并且移位总是随机的。当它工作时,它会在会话期间继续工作,直到我重新启动连接。

还有其他人遇到过类似的问题吗?关于如何解决这个问题,你有什么建议吗?

你好,托比亚斯

共有1个答案

有权
2023-03-14

您能否提供一个代码示例,说明如何发送和读取字节?尤其是阅读arduino代码非常重要。

目前尚不清楚如何同步传输:假设发送5个字节,Arduino代码在接收完整阵列时如何检测?如果您依赖串行端口缓冲区,只需计算5个传入字节(假设它们组成一个数组),请检查如果至少有一个字节丢失(例如,由于处理代码重新启动,而一些字节已发送到Arduino),会发生什么情况。

 类似资料:
  • 我有办法转移arr元素: 当我执行这段代码时,我遇到了一个异常: 据我所知,程序需要更多的空间来包含另一个项目。但是我不需要添加更多的项目,我需要已经存在的移动。用参数,如果参数为负,所有数组向左移动,如果为正向右移动,如果为零-什么都不会发生。

  • 我创建了一个函数来删除数组中的一个特定元素,但正在努力解决的问题是,当我们从s.next()中获得要删除的元素的值时,它不是删除,而是当我们已经为它初始化了一个值时,它是删除

  • 我创建了一个函数来删除数组中的一个特定元素,但正在努力解决的问题是,当我们从s.next()中获得要删除的元素的值时,它不是删除,而是当我们已经为它初始化了一个值时,它是删除 例如,我们有一个函数remove

  • 我有两个8位数的十六进制字符串。我需要对这两个十六进制字符串应用和操作,然后应用右移位到7位,并得到十进制值。我尝试将十六进制字符串转换为长度为4的字节数组(8*2=32位=4字节),并按相同的顺序对各个字节执行&操作,将结果保存到另一个长度为4的byre数组中。如何对这个字节数组进行位移位? 以及data1Bytes和data2Bytes之间的操作,该操作给出输出:bytearray1[0,0,

  • 问题内容: 考虑以下代码(其中byteIndex是一个int): 这会产生错误 编译时(必需字节,位于int)。 代码 编译良好。 这是什么问题,我该如何解决第一个示例以允许将整数值按int值进行移位? 编辑:根据评论,这是一个更完整的示例: 和给出的错误是: 问题答案: 将您的行转换为此:- 您的RHS是一个整数,您需要将其转换为字节。 上面的代码将正常工作..不管有没有的到 因此,您也可以:-

  • 我在一次采访中被要求在没有任何临时变量或.NET类、字符串方法等帮助的情况下反向相同字符串数组的元素。我被告知要使用像循环这样的基本编程结构。因为,我今天要参加另一个面试,我急急忙忙地想知道这是否真的可能,因为我找不到解决这个问题的办法。