Arduino 传输数据类型转换

时间:2024-04-02 17:37:31

 itoa():将整型值转换为字符串。

  ● ltoa():将长整型值转换为字符串。

    ● ultoa():将无符号长整型值转换为字符串。

  ● gcvt():将浮点型数转换为字符串,取四舍五入。

  ● ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。

  ● fcvt():指定位数为转换精度,其余同ecvt()。

 ● atof():将字符串转换为双精度浮点型值。

    ● atoi():将字符串转换为整型值。

    ● atol():将字符串转换为长整型值。

  ● strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。

    ● strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。

  ● strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。

同时可以根据字符和数字之间的对应关系自己写函数(不调用库函数)实现字符串与数值之间的转换:

 

式如下:

char* dtostrf(double _val,signed char _width, unsigned char prec, char* _s)

参数说明:

_val:要转换的float或者double值。

_width:转换后整数部分长度。

_prec:转换后小数部分长度。

_s:保存到该char数组中。

 

示例如下:

 

 
  1. float f=3.1415;

  2. char c[];

  3. dtostrf(f,1,2,c);

  4. Serial.println(c);

 

 

此时从Arduino自带串口监视器中将输出3.14,即成功实现了数据类型转换。

 

 

数据转换之后,我们可以对字符串进行一个拼接。如下,将实现字符串的拼接

 

 
  1. float f=3.1415;

  2. char c[];

  3. dtostrf(f,1,2,c);

  4. Serial.println(c);

  5. //定义一个字符串

  6. char s[]="///sensor1///ly///sensor1///PM2.5///100.70///";

  7. //进行字符串拼接操作

  8. strcat(s,c);

  9. Serial.println(s);

int -char的方法:

代码如下:

 

 
  1. void setup() {

  2. // put your setup code here, to run once:

  3.  
  4. Serial.begin(9600);

  5.  
  6. int number = 12;

  7. char string[25];

  8.  
  9.  itoa(number, string, 10);

  10. Serial.println(string);

  11.  
  12.  char s[] = "ababababbaabababab////";

  13. strcat(s, string);

  14. Serial.println(s);

  15. }

  16.  
  17. void loop() {

  18. // put your main code here, to run repeatedly:

  19.  
  20. }

 

 

Arduino 传输数据类型转换

字符'0'的ASCII码为48,然后是'1' '2' '3' ... '9'

字符' '(空格)的ASCII码为32.

字符'A'的ASCII码为65,然后是'B' 'C' ... 'Z'

字符'a'的ASCII码为97,然后是'b' 'c' ... 'z'

所以,把一个数字字符ch,转为一个整数,就是ch-'0' 当然ch-48也行

因为C和C++中,字符和整型是一样的,可以隐式转换