Arduino 字符串处理
1、新建 Arduino 程序的方法,可以参考经验:
http://jingyan.baidu.com/article/414eccf6a8fb9f6b431f0ab1.html

2、字符串处理 - 分离字符串
输入下列代码,并将代码保存后上传到 Arduino UNO 控制器
/*
将用逗号分隔的字符串分离出来
*/
String message= "A,B,C"; //要分离的字符串
int commaPosition;//存储还没有分离出来的字符串
void setup()
{
Serial.begin(9600);//打开串口,设置波特率为9600
}
void loop()
{
Serial.println(message);//串口打印要分离的字符串
do
{
commaPosition = message.indexOf(',');//检测字符串中的逗号
if(commaPosition != -1)//如果有逗号存在就向下执行
{
Serial.println( message.substring(0,commaPosition));//打印出第一个逗号位置的字符串
message = message.substring(commaPosition+1, message.length());//打印字符串,从当前位置+1开始
}
else
{ //找到最后一个逗号,如果后面还有文字,就打印出来
if(message.length() > 0)
Serial.println(message);
}
}
while(commaPosition >=0);
delay(5000);
}
3、显示效果如下图所示

4、字符串处理 - 数字转字符串
输入下列代码,并将代码保存后上传到 Arduino UNO 控制器
int value = 127;
String readout = "The reading is:";
void setup()
{
Serial.begin(9600);
readout += value;
Serial.println(readout);
}
void loop()
{
}
Arduino 的字符串功能会在一个数值被指定给一个字符串变量或与一个字符串变量相连接的时候,自动将其转换成字符串。

5、程序显示效果如下:

6、字符串处理 - 字符串转数字
输入下列代码,并将代码保存后上传到 Arduino UNO 控制器
#define led 13
int blinkDelay;
char strValue[4];
int index = 0;
void setup() {
Serial.begin(9600);
pinMode(led,OUTPUT);
digitalWrite(led,LOW);
}
void loop() {
if(Serial.available())
{
char x = Serial.read();
if(index<3 && isDigit(x))
{
strValue[index++] = x;
}
else
{
strValue[index] = 0;
blinkDelay = atoi(strValue);
Serial.print(blinkDelay);
index = 0;
}
}
blink_led();
}
void blink_led()
{
digitalWrite(led,HIGH);
delay(blinkDelay/2);
digitalWrite(led,LOW);
delay(blinkDelay/2);
}

7、打开 Arduino IDE 的串口监视器,输入要字符 000 - 999,设置 LED 的闪烁频率,如图所示,输入 123 闪烁频率就是 123/2 ms,通过串口打印的值就是闪烁频率的二倍。
