之前的工程, 我們一直把所有的代碼寫在一個文件里, 寫在我們來將它們分開
以一個讀取sht20的溫濕度數(shù)據(jù)并在串口上打印為例:
我們的規(guī)劃是這樣的
- 設(shè)置一個 config.h文件, 所有的硬件定義, 公共變量 ,都放在這里面,(也可以分多個.h ,然后集中引用過來)
- main.ino 文件包含入口函數(shù) setup()
- 具體的函數(shù)文件寫具體的功能, 文件格式 .ino(不用.cpp)
- 如果有全局變量, 在config.h中聲明, 在具體的.ino中 extern
例子:
config.h (總配置頭文件)
#if !defined(CONFIG_H)
#define CONFIG_H
#include "Arduino.h"
#include "Wire.h"
#include "uFire_SHT20.h"
uFire_SHT20 sht20;
float currentTemp;
float currentHumi;
void hardware_init();
void sht20getTempAndHumi();
#endif // CONFIG_H
hardware_init.ino //硬件初始化相關(guān)
#include "config.h"
void hardware_init()
{
Wire.begin();
Serial.begin(115200);
sht20.begin();
}
al_sht20.ino //sht20操作相關(guān)
#include "config.h"
extern float currentTemp;
extern float currentHumi;
void sht20getTempAndHumi()
{
float _currentTemp = sht20.temperature();
float _currentHumi = sht20.humidity();
if(_currentTemp<100)
{
currentTemp = _currentTemp;
currentHumi = _currentHumi;
}
}
最后: main.ino
#include "config.h"
void setup()
{
delay(2000); //這句是為了讓我手動打開串口助手??
hardware_init();
sht20getTempAndHumi();
Serial.println(currentTemp);
Serial.println(currentHumi);
}
void loop()
{
}