如何在不知道Arduino中的大小的情况下在其中创建数组和存储值

时间:2018-04-27 13:57:07

标签: c++ arduino

我正在尝试为从另一个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可以根据需要成功运行,但如何将它们存储在数组中?

1 个答案:

答案 0 :(得分:0)

建议采用两种方法:

  1. 预定义固定大小的数组

    #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
        }
    }
    
  2. 使用我喜欢this one的动态数组库。