【发布时间】:2016-11-04 04:01:21
【问题描述】:
我需要一些帮助来从 SD 卡中提取数据,我的代码来自 this 部分。
当我从 SD 卡读取数据并将其显示到串行端口时,代码可以工作,但是当我将数据传递到 char* 数组并调用将循环数组的函数时,数组显示垃圾(一些不可读的数据)。我正在尝试制作一个函数,可以用来调用以文本文件格式从 SD 卡存储的不同设置。
我有一个全局变量,名为:
char* tempStoreParam[10];
这将存储要处理的临时数据。文本文件中存储的数据就是这种格式
-n.command
其中:n = 要存储在tempStoreParam[10] 中的数据的int 编号和索引位置,命令是要存储在tempStoreParam[10] 中的char* 数组。
例子:
-1.readTempC
-2.readTempF
-3.setdelay:10
-4.getIpAddr
这里是sn-p的代码:
while (sdFiles.available()) {
char sdData[datalen + 1];
byte byteSize = sdFiles.read(sdData, datalen);
sdData[byteSize] = 0;
char* mList = strtok(sdData, "-");
while (mList != 0)
{
// Split the command in 2 values
char* lsParam = strchr(mList, '.');
if (lsParam != 0)
{
*lsParam = 0;
int index = atoi(mList);
++lsParam;
tempStoreParam[index] = lsParam;
Serial.println(index);
Serial.println(tempStoreParam[index]);
}
mList = strtok(0, "-");
}
}
我正在尝试得到以下结果:
char* tempStoreParam[10] = {"readTempC","readTempF","setdelay:10","getIpAddr"};
【问题讨论】:
标签: c++ c arduino arduino-esp8266