Arduino关于长整形数据转换成String类型
- 今天在项目开发中就遇到一个问题,需要将一个长长整形数据转换成
String
类型的数据。
uint8_t
/ uint16_t
/ uint32_t
/uint64_t
前面3个类型还好说,容易实现,遇到了
uint64_t
,转换就出了问题。
- String类数据是处理的起来是最灵活的,可是遇到
uint64_t
,一般的方法还不凑效。
解决办法
- 先定义一个
char
类型的数组来接收uint64_t
,再将char
数组直接赋值给String
类型的变量。具体操作如下:
String str="size:";
uint64_t cardSize = SD.cardSize() / (1024 * 1024);
char buff[10];//长度根据需求自己定义。
char buff2[10];
sprintf_P(buff, PSTR(" %llu"),cardSize);
sprintf(buff2," %llu", SDsize);
str += buff;
sprintf_P
也就是sprintf变种
的作用相同,是将一个格式化的字符串输出到一个目标字符串中,而printf是将一个格式化的字符串输出到屏幕。
今日的努力, 是为了不再重复痛苦的过去。 |
---|