关于char *的Arduino sprintf没有改变价值

时间:2015-11-10 19:59:56

标签: arduino printf

我想将一个值连接到一个char *变量(这个值来自一个传感器,我想用这个值进行GET)..但是,当我在Serial Monitar上打印这个值时,变量没有变化..只在第一次工作..

这个代码..

REF_CURSOR

然后,串行监视器只打印:

int sensorValue=0;

void main(){
 Serial.Begin(9600);    
}

void loop(){

 char *hello = "GET /value=%i HTTP/1.1\r\nHost: www.baidu.com\r\nConnection: close\r\n\r\n";

 sprintf(hello, hello, sensorValue);
 sensorValue++;

}

.....

1 个答案:

答案 0 :(得分:0)

为什么不尝试使用Arduino Strings? https://www.arduino.cc/en/Tutorial/StringConstructors

示例:

void loop(){
    String prefixStr = "GET /value="; 
    String suffixStr = " HTTP/1.1\r\nHost: www.baidu.com\r\nConnection: close\r\n\r\n";

    String valueStr =  String(sensorValue); // integer to String conversion


    Serial.println(prefixStr + valueStr + suffixStr); // print it out the serial

    sensorValue++; // increment variable
}