【WiFi模组】乐鑫ESP32 基于ESP-IDF的原生SDK二次开发

一、 开发环境

1.系统环境:Windos10
2.源码框架:官方ESP-IDF 4.4.1
3.编辑代码:VScode
3.开发语言:C语言
4.操作系统:FreeRTOS

二、开发流程

1.下载离线安装包 & 安装

【官方下载链接:ESP-IDF Windows Installer Download Open Source IoT Development Framework for ESP32】
【WiFi模组】乐鑫ESP32 基于ESP-IDF的原生SDK二次开发_第1张图片

尝试过在线安装,但是由于网络问题很容易失败,建议使用离线安装

安装程序会安装以下组件:

  • 内置的 Python
  • 交叉编译器
  • OpenOCD
  • CMakeNinja 编译工具
  • ESP-IDF

安装在D盘,一路点击下一步即可

2.启动ESP-IDF环境

安装结束时,如果勾选了 Run ESP-IDF PowerShell Environment,安装程序会在选定的提示符窗口启动 ESP-IDF
【WiFi模组】乐鑫ESP32 基于ESP-IDF的原生SDK二次开发_第2张图片

【WiFi模组】乐鑫ESP32 基于ESP-IDF的原生SDK二次开发_第3张图片

3.创建工程

① 在桌面新建ESP目录

② 将ESP-IDF框架中的例程复制到~ESP/

【WiFi模组】乐鑫ESP32 基于ESP-IDF的原生SDK二次开发_第4张图片

③ 设置环境变量

要用安装工具生成的那个ESP-IDF 4.4 PowerShell桌面快捷方式,打开电脑中的PowerShell没用,因为没有关联到ESP-IDF
【WiFi模组】乐鑫ESP32 基于ESP-IDF的原生SDK二次开发_第5张图片
切到 ~\esp\hello_world目录下,即我们的工程目录下
【WiFi模组】乐鑫ESP32 基于ESP-IDF的原生SDK二次开发_第6张图片
设置环境变量的工具在D:\Espressif\frameworks\esp-idf-v4.4.1下,我们在当前工程目录运行它,即可将当前工程目录添加到环境变量,然后我们才能使用python工具对该工程进行编译、下载等操作,命令如下:

 . D:\Espressif\frameworks\esp-idf-v4.4.1\export.ps1

【WiFi模组】乐鑫ESP32 基于ESP-IDF的原生SDK二次开发_第7张图片

4.编译

编译指令如下:

idf.py build

【WiFi模组】乐鑫ESP32 基于ESP-IDF的原生SDK二次开发_第8张图片
编译成功生成.bin文件

【WiFi模组】乐鑫ESP32 基于ESP-IDF的原生SDK二次开发_第9张图片

5.下载

下载前要设置目标板裁剪框架

①设置目标板

idf.py set-target esp32

②裁剪框架,配置自己需要的功能

idf.py menuconfig

【WiFi模组】乐鑫ESP32 基于ESP-IDF的原生SDK二次开发_第10张图片

配置需注意的地方:

  • 如果开发板用usb供电,注意关掉电压检测,否则会一直重启
  • 如果程序较大,在Serial flasher confi --->中修改Flash大小,否则程序下载不进去
  • 如果使用蓝牙功能,在Component config --->中打开蓝牙,蓝牙默认是关闭的
  • 如果想用蓝牙功能来配网,还要在开启蓝牙的同时使能蓝牙菜单下的BluFi功能

③下载

根据实际端口

idf.py -p COM3 -b 460800 flash

④监控

idf.py -p COM3  monitor

三、代码编辑

1.配置vscode依赖,方便跳转到框架源码

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "D:\\Espressif/**",
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "msvc-x64"
        }
    ],
    "version": 4
}

2.编写Makefilelist.txt

开发中新建的多个路径及文件,记得添加到Makefilelist.txt,供编译工具编译时索引

idf_component_register(SRCS "main.c"

                            "../APP/src/GPIO.c" 
                            "../APP/src/Character.c" 
                            "../APP/src/MQTT.c" 
                            "../APP/src/MQTT_Subscribed.c" 
                            "../APP/src/MQTT_Publish.c" 
                            "../APP/src/NVS.c" 
                            "../APP/src/D_open.c" 
                            "../APP/src/Pulse_CNT.c" 
                            "../APP/src/Timer.c" 
                            
                       INCLUDE_DIRS 
                                   "../APP/inc" 
                       REQUIRES 
                                   blufi
                       PRIV_REQUIRES
                                   mqtt nvs_flash 
                                   
)

其中REQUIRES 代表自己定义的组件,PRIV_REQUIRES代表官方组件,如果使用了相关功能,记得添加,否则会报找不到头文件的错误,如果报了错,可以看看是不是没有添加组件

你可能感兴趣的:(物联网技术,单片机,物联网,mcu,嵌入式硬件)