【发布时间】:2020-03-18 14:20:51
【问题描述】:
我目前正在进行的 Arduino 项目有点困难。
我正在开发的函数的目的是接收通过 NRF 无线模块接收的 char 数组变量,并将其分成 2 个不同的字符串变量。前 13 个字符为一个字符串,其余字符为另一个。
void receiveData(char* receivedData){ // Function to place the received data into the correct variable.
for(int i = 0;i < sizeof(receivedData);i++){
if(i < 13){
String variableName = variableName + receivedData[i]; // Builds a string of the variablename.
}
else{
String value = value + receivedData[i]; // Builds a string of the value.
}
}
我已经通过几种不同的方式工作,但没有运气。
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
这能回答你的问题吗? C++: sizeof for array length
-
variableName 保持在 if 循环的范围内,因此一旦您再次进入 for 循环,对 variableName 所做的所有更改都将消失。您应该在 for 循环之外声明 value 和 variableName (String variablename, value;)
-
sizeof(receivedData)与sizeof(char*)相同,根据平台的不同为 4 或 8(在 Arduino 上可能为 4)。您需要将大小传递给函数。