一、esp8266模块信息
二、中英文切换
点击文件( File )–选择首选项( Preference )—选择语言( Language )—选择中文–点击确定( OK )
三、多文件编程
在Arduino编程中,将代码分割成多个文件是一种很好的做法,特别是项目变得越来越大和复杂时。这样做可以提高代码的可读性和可维护性。Arduino IDE原生支持C++,因此你可以使用C++的特性,如头文件(.h文件)和源文件(.cpp或.ino文件),来组织程序代码。
将Arduino代码分割成多个文件步骤如下:
创建头文件(.h文件):头文件通常包含类的声明、函数原型或常量定义。在Arduino项目中,可以将公共的函数声明或类定义放在头文件中。
例如,创建一个名为myFunctions.h的头文件:
// myFunctions.h
#ifndef MYFUNCTIONS_H
#define MYFUNCTIONS_H
void setupLED();
void blinkLED();
#endif //MYFUNCTIONS_H
或者
#ifndef MYFUNCTIONS_H
#define MYFUNCTIONS_H
class LedFun
{
public:
void setupLED();
void blinkLED(int num);
//private:
//char num;
};
#endif //MYFUNCTIONS_H
创建源文件(.cpp或.ino文件):源文件包含函数的实现。在Arduino项目中,你可以将函数的实现放在源文件中。注意,Arduino IDE主要使用.ino文件作为源文件,但你也可以使用.cpp文件,并在IDE中手动设置编译选项。
例如,创建一个名为myFunctions.cpp的源文件:
// myFunctions.cpp
#include "myFunctions.h"
#include <Arduino.h>
void setupLED() {
// LED设置代码
Serial.println("set led");
}
void blinkLED() {
// LED闪烁代码
}
或者
#include "myFunctions.h"
#include <Arduino.h>
void LedFun::setupLED()
{
Serial.println("set led");
}
void LedFun::blinkLED(int num)
{
Serial.println(num,DEC);
}
在主文件中包含头文件:在主Arduino文件(通常是.ino文件)中,包含创建的头文件。这样就可以在主文件中调用在头文件中声明的函数了。
例如,主.ino文件中:
// main.ino
#include "myFunctions.h"
void setup() {
setupLED();
}
void loop() {
blinkLED();
}
或者
#include "myFunctions.h"
LedFun myLedFun;
void setup() {
// put your setup code here, to run once:
myLedFun.setupLED();
}
void loop() {
myLedFun.blinkLED(1);
}
在Arduino IDE中编译和上传,将所有文件放在同一个文件夹中,并在Arduino IDE中打开主.ino文件。然后编译和上传代码到Arduino开发板。
四、测试
工程文件夹下,新建文件,重命名为 ledFun.cpp 和 ledFun.h ,工程会自动加载。
测试代码:
ledFun.h 文件代码如下:
#ifndef LEDFUN_H
#define LEDFUN_H
#include "Arduino.h"
class LedFun
{
public:
void setLedOn();
void blinkLed(int num);
// private:
// char num;
};
#endif
ledFun.cpp 文件代码如下:
//#include "Print.h"
//#include "HardwareSerial.h"
#include "ledFun.h"
void LedFun::setLedOn()
{
Serial.println("set led on");
}
void LedFun::blinkLed(int num)
{
Serial.println(num,DEC);
}
主函数文件代码如下:
#include "ledFun.h"
const int BAUD_RATE = 115200;
LedFun myLedFun;
void setup() {
// put your setup code here, to run once:
Serial.begin(BAUD_RATE);//初始化串口通信
delay(1000);//等待监视器连接
Serial.println();
myLedFun.setLedOn();
}
void loop() {
static int i=0;
i++;
myLedFun.blinkLed(i);
delay(3000);
}
测试结果
版权归原作者 嵌入式学习和实践 所有, 如有侵权,请联系我们删除。