我正在使用Wire library将一些数据从shield移动到Arduino。
屏蔽总是正好输出36个字节(GPS设备),但Arduino看到两个数据传输,总共加起来36个字节。在每次传输中并不总是相同的计数,但总共36个字节。每次数据进入时都会重新运行setup()
例程。
好像图书馆正在重新进入Arduino应用程序并将其搞砸了。
这可能吗?
答案 0 :(得分:3)
如果每次数据进入时都会运行setUp()
(你确定这个吗?)那么这意味着Arduino由于某种原因正在重置/重启。你是如何为GPS防护罩供电的?如果它正在向Arduino供电(可能吸收太多电流),那么可能会导致复位。它也可能是你的代码占用太多内存的东西。我先看看电源问题。
答案 1 :(得分:2)
如果您使用Wire.available
,请注意它并不保证它将返回发送的字节数。您需要反复调用它,直到它返回零。
请参阅Arduino documentation中的示例。