最近使用arduino较多,作一个统一的记录。
安装esp8266开发板管理网址 https://github.com/esp8266/Arduino/releases/download/2.5.0/package_esp8266com_index.json
安装esp32开发板管理网址 https://dl.espressif.com/dl/package_esp32_index.json
Arduino字符串笔记 https://www.cnblogs.com/dapenson/p/12822519.html
关于程序太大,空间不足
除了换大空间的芯片以外,esp32在arduino中是有设置的
缺省设置为4MB Flash,其中1.2MB App使用,1.5MB SPIFFS使用,太浪费了。
这里我选择了小存储:1.9MB程序带OTA以及190K存储。因为我还希望使用OTA功能,毕竟不能每次都靠在线更新固件。
否则,你可以选择HugoAPP,享有3MB程序空间,基本上大部份程序都够了。3MB都不够的,项目也够大了,选择8MB空间,应该的。
字符串转数字 String to Int
/*
使用String.toInt()将字符串转为数字示例
*/
String inString = ""; // string to hold input
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// send an intro:
Serial.println("\n\nString toInt():");
Serial.println();
}
void loop() {
// Read serial input:
while (Serial.available() > 0) {
int inChar = Serial.read();
if (isDigit(inChar)) {
// convert the incoming byte to a char
// and add it to the string:
inString += (char)inChar;
}
// if you get a newline, print the string,
// then the string's value:
if (inChar == '\n') {
Serial.print("Value:");
Serial.println(inString.toInt());
Serial.print("String: ");
Serial.println(inString);
// clear the string for new input:
inString = "";
}
}
}
数字转字符串 Int to String
- 直接赋值
String myNumber = 1234;
- 使用类成员函数转换,将数字自动追加到字符串结尾
int value = 123;
String myReadout = "The reading was ";
myReadout.concat(value);
- 使用类运算符转换,将数字自动追加到字符串结尾
int value = 123;
String myReadout = "The reading was ";
myReadout += value;
常见函数整理
** String.c_str() **
一个将string转换为 const* char的函数。 c_str函数的返回值是const char的,不能直接赋值给char
String s = "Chelse";
const char *str = s.c_str();
** strcpy **
原型声明:char strcpy(char dest, const char *src);
strcpy(A, B.c_str());//将B复制给A
** sprintf **
把整数123 打印成一个字符串保存在s 中。
char *s;
sprintf(s, "%d", 123); //产生"123"
char*, const char*, string 三者转换
** const char* 和 String 转换
- 直接赋值
const char* tmp = "tsinghua"
string s = tmp;
- 利用c_str()
string s = "Arduino";
const char*tmp = s.c_str();
** char* 和 const char* 转换 **
- 利用const_cast<char*>
const char* tmp = "Arduino";
char* p = const_cast<char*>(tmp);
- 直接赋值即可
char* p = "tsinghua"
const char* tmp = p;
** char* 和 string转换 **
- 直接赋值即可
char* p = "Arduino"
string str = p;
- string转化为char*,走两步,先是string->const char,然后是const char->char*
string str = "Arduino";
char* p = const_cast<char*>(str.c_str());