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

 


评论:
相关文章
小鹏物联网 MicroPython 智能浇花方案

相信很多人都有把绿植给养死的经历,可能是浇水过多、忘记浇水、较长时间不在家不能浇水等,本文介绍一种可以灵活定制的智能浇花方案。


MicroPython 开发ESP32应用之线程介绍及实例分析

MicroPython 在 ESP32 上支持线程(Thread)功能,通过_thread模块实现。线程允许程序并发执行多个任务,适合处理需要同时运行的场景,例如传感器数据采集和网络通信。


盛思发布掌控板3.0

掌控板3.0升级了主控,还主打AI。带有双麦克风阵列,增加了音频解码芯片,板载了一个1W喇叭,还把之前的单色屏幕换成了1.47寸的彩色屏幕,有更多的可玩性。


ESP32 MicroPython采集模拟传感器数值

使用了 MicroPython 库,通过 定时器(Timer) 和 ADC(模数转换器) 功能来实时读取传感器数据。使用定时器可以实现高精度、非阻塞、低资源消耗的周期性任务,保证实时性和可靠性,特别适用于嵌入式系统中的多任务处理和低功耗场景。


ESP32 使用DAC模拟输出完成两路呼吸灯

ESP32的DAC函数可以实现真正的模拟输出。

玩转 ESP32 + Arduino

作者:finedayforu@CSDN   共24讲

玩转 ESP32 + Arduino