C-来自UART的数据更新数组



希望有人可以在这里帮助我。C相当新的C(来自PHP背景),并且几天被困在这个问题上。仍在尝试获得圆形指针等,Joy php没有。

因此,我希望能够将数组中的特定值更新为通过UART给出的值。UART都可以正常工作。只是无法让代码工作以更新数组。来自UART的数据将在下面的代码中的字符串'UART'中,并将具有值'0430'(前2位数字参考数组键,第二个两个将是将其更新为的值)。

// Array values
int unsigned array[15] = {05,76,33,02,11,07,34,32,65,04,09,32,90,03,44};
// Split the UART string into required parts
// Array Key
int key;
memcpy (key, &uart[0], 2);
// New Value
int value;
memcpy (value, &uart[2], 2);
array[key] = value; // Im sure this is wrong and needs to be done via a pointer?

新数组现在应该是: {05,76,33,02,30,07,34,32,65,04,09,32,90,03,44};

任何建议都很棒,甚至简短的解释都将是一流的,可以帮助我理解。

预先感谢

您不能简单地将两个字节从字符串" 04"复制到int变量,并期望它包含4。您需要将字符串" 04"转换为值4使用atoi

示例

您想要这个:

  char uart[] = "0430";   // made up uart buffer just for debugging
  char temp[3] = { 0 };   // buffer for 2 char string, all 3 bytes initialized to 0
  temp[0] = uart[0];
  temp[1] = uart[1];      // temp contains now "04"
  int key = atoi(temp);   // convert from string to integer, key now contains 4
  temp[0] = uart[2];      
  temp[1] = uart[3];      // temp contains now "30"
  int value = atoi(temp); // convert from string to integer, value now contains 30

相关内容

  • 没有找到相关文章

最新更新