我正在尝试为从另一个Arduino(Transmitter)接收十六进制值的接收器编写Arduino代码,然后我想检查这些值并将它们存储在我不知道其大小的新数组中,而发送器发送值接收器将存储它们。
值成功到达接收器,但我不知道如何将它们存储在新数组中。
我的收件人代码是这样的:
for (i = 0; i < len; i++)
{
if (receivedValue[i]==0x60)
{
//digitalWrite(LED1,LOW);
// store receivedValue[i] in the new array
}
else
{
if(receivedValue[i]==0x61)
{
//digitalWrite(LED3,LOW);
// store receivedValue[i] in the new array
}
if (receivedValue[i]==0x62)
{
//digitalWrite(LED4,LOW);
// store receivedValue[i] in the new array
}
// any other receivedValue[i] dont do anything
}
}
LED可以根据需要成功运行,但如何将它们存储在数组中?
答案 0 :(得分:0)
建议采用两种方法:
预定义固定大小的数组
#define MAX_ITENS 50 // The size of buffer
uint8_t buffer[MAX_ITENS]; // The Buffer
uint8_t posBuffer = 0; // Pointer to actual position
loop() {
....
// Add data to buffer
posBuffer++;
if (posBuffer == MAX_ITENS) {
// Buffer overflow - You can set position to 0
// or give some error
} else {
buffer[posBuffer] = data; // Save the data
}
}
使用我喜欢this one的动态数组库。