基于Arudino ide 的esp8266的多文件编译

本文章以dht11代码为例(c语言格式)

右侧三个点 点击后新建标签

main.c

复制代码
#include "dht11.h" //自定义头文件


void setup() {
  // // 初始化串口
   Serial.begin(115200);
}

void loop() {
  
  DHT11_proc();
  delay(200);
  

  
}

dht11.cpp(但是本人用的c语言)

复制代码
#include "dht11.h"
DHTStable DHT;

void DHT11_proc()
{
  Serial.print("DHT11, \t");
  int chk = DHT.read11(DHT11_4_PIN);
  switch (chk)
  {
    case DHTLIB_OK:  
      Serial.print("OK,\t"); 
      break;
    case DHTLIB_ERROR_CHECKSUM: 
      Serial.print("Checksum error,\t"); 
      break;
    case DHTLIB_ERROR_TIMEOUT: 
      Serial.print("Time out error,\t"); 
      break;
    default: 
      Serial.print("Unknown error,\t"); 
      break;
  }
  // DISPLAY DATA
  Serial.print(DHT.getHumidity(), 1);
  Serial.print(",\t");
  Serial.println(DHT.getTemperature(), 1);

}

dht11.h

复制代码
// 防止头文件被重复包含(核心!)
#ifndef DHT11_H__
#define DHT11_H__

// 1. 引入依赖(如果需要)
#include <Arduino.h>  // 必须引入,否则无法使用pinMode/digitalWrite等Arduino核心函数
#include "DHTStable.h"
extern DHTStable DHT;
#define DHT11_4_PIN   4

void DHT11_proc(void);


#endif  // 结束防重复包含
相关推荐
weixin_404380631 天前
MQTT 上云验收:ESP32-S3 从局域网控灯到远程网页控制
物联网·mqtt·esp32
探鸽小钛2 天前
4G 终端 ES8311 - 挂断一次,下次说话就没声了之解决办法
物联网·音视频·嵌入式·esp32·webrtc
光子物联单片机3 天前
ESP32传感器模块编程实践(一)DIY智能WIFI视频控制小车
嵌入式硬件·esp32·智能硬件·硬件
少卿.5554 天前
wokwi搭建仿真超声波雷达测距判断(保姆级教学)
单片机·嵌入式硬件·arduino
编码追梦人4 天前
基于 ESP32-S3 的便携式多参数环境监护仪设计:从硬件选型到 FreeRTOS 多任务落地
数据库·单片机·嵌入式硬件·mongodb·esp32·freertos·低功耗设计
Keith Guo5 天前
ESP32-S31 分区表的访问流程图
流程图·esp32
Keith Guo7 天前
Event Task Matrix(ETM)工作机制
驱动开发·esp32·etm
星野云联AIoT技术洞察10 天前
ESP32 接入 Meta Muse:Gadget SDK 能做什么,为什么不能直接做商业设备
esp32·agent·token·边缘ai·meta muse·mcu选型
ITKEY_12 天前
VSCode Arduino cli 开发ESP32
esp32·iot
J_bean13 天前
Mac(Intel 芯片)ESP32 USB 串口驱动安装教程
esp32·iot·usb 串口驱动