【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
在这里插入图片描述

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

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

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

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

2.启动ESP-IDF环境

安装结束时,如果勾选了 Run ESP-IDF PowerShell Environment,安装程序会在选定的提示符窗口启动 ESP-IDF
在这里插入图片描述

在这里插入图片描述

3.创建工程

① 在桌面新建ESP目录

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

在这里插入图片描述

③ 设置环境变量

要用安装工具生成的那个ESP-IDF 4.4 PowerShell桌面快捷方式,打开电脑中的PowerShell没用,因为没有关联到ESP-IDF
在这里插入图片描述
切到 ~\esp\hello_world目录下,即我们的工程目录下
在这里插入图片描述
设置环境变量的工具在D:\Espressif\frameworks\esp-idf-v4.4.1下,我们在当前工程目录运行它,即可将当前工程目录添加到环境变量,然后我们才能使用python工具对该工程进行编译、下载等操作,命令如下:

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

在这里插入图片描述

4.编译

编译指令如下:

idf.py build

在这里插入图片描述
编译成功生成.bin文件

在这里插入图片描述

5.下载

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

①设置目标板

idf.py set-target esp32

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

idf.py menuconfig

在这里插入图片描述

配置需注意的地方:

  • 如果开发板用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代表官方组件,如果使用了相关功能,记得添加,否则会报找不到头文件的错误,如果报了错,可以看看是不是没有添加组件

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

外来务工人员徐某

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值