我有这个:
Serial.write(charBuf[0]); //gives 5
String data(charBuf);
Serial.write(data); //gives nothing (space)
首先是打印5,第二是打印。我错过了什么?是否与NULL终止的东西有关?
这是缓冲区的创建方式:
int len=1;
char charBuf[len];
for(int k=ACT_THRESH;k<ACT_THRESH+len;k++)
{
charBuf[k-ACT_THRESH]= EEPROM.read(k);
}
答案 0 :(得分:1)
int len = 1;
int str_len = 0;
char charBuf[16];
for(int k = ACT_THRESH; k < ACT_THRESH + len && str_len < sizeof(charBuf); k++)
{
charBuf[str_len++]= EEPROM.read(k);
}
charBuf[str_len] = '\0';
但如果len = 1