我正在尝试使用内置的String对象读取Arduino Mega 2560上的串行数据,但是当在FreeRTOS任务中使用时不会打印串行数据,如下面的代码
void TaskSerialIn(void *pvParameters)
{
String json;
for(;;) {
while(Serial.available()) {
json = Serial.readStringUntil('\n');
Serial.println(json); // this code not printing anything
}
vTaskDelay(200 / portTICK_PERIOD_MS);
}
}
即使我将String声明为全局变量,它也不起作用。 当字符数组用于存储字节
时,以下代码有效char serialJson[65];
void TaskSerialIn(void *pvParameters)
{
char * jsonStr;
int i = 0;
for(;;) {
i = 0;
while(Serial.available()) {
char inChar = (char) Serial.read();
serialJson[i++] = inChar;
if(inChar == '\n') {
serialJson[i] = '\0';
Serial.print(serialJson);
}
}
vTaskDelay(200 / portTICK_PERIOD_MS);
}
}
如何使用String读取串行数据,我们将不胜感激。