其实新建库或者引入自己的库的方法,在lib
文件夹下的README
里面都有写,里面也都有很好的例子。大家可以仔细阅读一下。
那么我来简单陈述一下吧。首先,我们需要按照图片中的步骤新建一个工程,我取的工程名字叫做lib_test
,选择的芯片型号是ESP32
下面就是新建工程的目录结构。
接下来就是在lib
文件夹下面建立自己的库了。
首先,在lib
下建立一个文件夹,我的文件夹的名字叫wifi_config
,这个名字由你的需求随便取。然后在这个文件夹下建立三个文件:wifi_config.cpp
、wifi_config.h
、library.json
。前两个分别是正常的.cpp
和.h
文件(这里最好是建立.cpp
而不是建立.c
,.c
可能会报错),最后一个json
文件非常非常非常的重要,很多时候新建库之后出问题都是因为没有这个json
文件。
整体文件结构如下图,我将在wifi_config.h
里面引入WiFi.h
和WebServer.h
。如果我们不添加library.json
文件,编译的时候就会提醒我们找不到WiFi.h
和WebServer.h
。我们需要在library.json
里面声明我们要依赖的其他库。具体代码在下面。
wifi_config.cpp文件
#include <wifi_config.h>
void wifi_init()
{
WiFi.mode(WIFI_STA);
}
wifi_config.h文件
#ifndef __WIFI_CONFIG_H
#define __WIFI_CONFIG_H
#include <Arduino.h>
#include <WiFi.h>
#include <WebServer.h>
void wifi_init();
#endif /* __WIFICONFIG_H */
library.json文件
{
"name": "wifi_config",
"description": "用于新建库的教学",
"keywords": "教学",
"frameworks": "arduino",
"platforms": [
"espressif32",
"libretiny"],
"dependencies": [
{
"name": "Web_Serve",
"platforms": "espressif32",
"version": "^2.0.0"
},
{
"name": "WiFi",
"platforms": "espressif32",
"version": "^2.0.0"
}
]
}
主函数main.cpp
里面正常引入wifi_config.h
并且调用里面的函数。编译烧录发现没有任何的问题 ヾ(≧▽≦*)o
#include <Arduino.h>
#include <wifi_config.h>
void setup()
{
void wifi_init();
}
void loop()
{
}
我稍微解释一下最后的library.json
里面的内容。真正详细的内容在library.json — PlatformIO latest documentation里面可以查看。前三个很好理解库的名称、库的描述、库的关键词。frameworks
表示需要兼容的框架,platforms
表示兼容的开发平台
最重要的是dependencies
表示我们需要的外部的库,owner
表示作者 name
表示外部库的名称 platforms
表示兼容的开发平台 version
版本。
示例工程文件CSDN链接:https://download.csdn.net/download/m0_54490453/89518621?spm=1001.2014.3001.5501
示例工程文件百度云链接: https://pan.baidu.com/s/1GrvLXubddKriH-wdOlQ0YQ 提取码:ebl2
以上就是新建工程以及添加自己的库的全部内容
如果我的方法帮助了你,求你点一个赞吧 (。◕ˇε ˇ◕。)