23.多文件系统及全局变量

之前的工程, 我们一直把所有的代码写在一个文件里, 写在我们来将它们分开
以一个读取sht20的温湿度数据并在串口上打印为例:
我们的规划是这样的
设置一个 config.h文件, 所有的硬件定义, 公共变量 ,都放在这里面,(也可以分多个.h ,然后集中引用过来)
main.ino 文件包含入口函数 setup()
具体的函数文件写具体的功能, 文件格式 .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 //硬件初始化相关
#include "config.h"
 
void hardware_init()
{
  Wire.begin();
  Serial.begin(115200);
  sht20.begin();
}
#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()
{
}

————————————————
链接:https://blog.csdn.net/finedayforu/article/details/108661555

 


评论:
相关文章
【ESP32 C++教程】Unit9-2:文件系统应用

本小节是一个Web服务结合SD卡文件系统的应用示例。


【ESP32 C++教程】Unit9-1:文件系统

本节主要讲解FileSystem类的使用,以及Flash文件系统配置和SD存储模块的使用。


【ESP32 C++教程】Unit8-2:Wifi热点和网页上控制设备

本节主要讲解Wifi热点的Web服务使用,以及使用网页交互来控制LED。


【ESP32 C++教程】Unit8-1:WiFi连接和HTTP请求

本节主要讲解WifiBoard类的功能和HTTPClient库及cJSON的使用。


【ESP32 C++教程】Unit7-3:TFT-LCD显示屏

本节主要讲解TFT-LCD显示屏的使用和Window派生类与TFT_eSPI库的使用。


基于STEAM教育和设计思维的初中化学跨学科实践活动——基于血氧指标控制的简易供氧器设计与制作

这篇文章展示了如何将化学与工程、信息技术、现代制造技术紧密结合,以“血氧指标控制的简易供氧器”为载体,组织一次真实的跨学科项目。设计中突出“从需求出发”“闭环控制”“可视化反馈”,不仅呼应了新课标中“跨学科实践”的要求,更贴近生活实际需求,尤其适用于对科技应用、健康关怀有兴趣的学生群体,可作为项目式学习或社团活动的优质课例。


【ESP32 C++教程】Unit7-2:OLED显示屏

本节主要讲解OLED显示屏的使用和Display类及派生类的介绍及使用。


【ESP32 C++教程】Unit7-1:四位7段式数码管

本节主要讲解用TM1650来驱动四位7段式数码管模块的显示使用。


【ESP32 C++教程】Unit6-4:资源互斥访问

本节主要讲解FreeRTOS任务间如何使用互斥对象来实现资源互斥访问。


ESP32 Guru Meditation Error报错定位分析

在ESP32的开发,经常会有系统崩溃一直重启的情况,那么如何快速定位出现异常的代码呢?

玩转 ESP32 + Arduino

作者:finedayforu@CSDN   共24讲

玩转 ESP32 + Arduino