细说基于IDF-IDE的ESP32 入门例程blink工程

本文记录了使用IDF-IDE配置和创建ESP32-S3的blink工程过程,包括安装IDE、新建工程和理解代码。工程涉及两种模式:RMT驱动的WS2812和GPIO驱动的普通LED。通过调整CONFIG_BLINK_PERIOD和configTICK_RATE_HZ,可以控制LED闪烁频率。文章还介绍了配置SDK和FreeRTOS的延时机制。
摘要由CSDN通过智能技术生成

细说基于IDF-IDE的ESP32 入门例程blink工程

最近不忙,就在某宝上花重金(几十大洋)入了一片esp32-S3开发板来把玩一下。写个流水帐作个记录。
一、安装IDE
先去官网的编程入门指南过一遍
地址:https://docs.espressif.com/projects/esp-idf/zh_CN/release-v5.0/esp32/get-started/index.html
然后到去官网下载安装包,下载地址:https://dl.espressif.cn/dl/esp-idf/?idf=4.4
我选第了二个。安装就是一路next。

二、新建工程。
1、在目标盘上新建一个空白文件夹用于存放自己建立的工程。
2、新建工程:在这里插入图片描述
然后起个工程名(随便自己喜欢就行)
在这里插入图片描述
点next后
在这里插入图片描述
这样,blink模板工程就建立好了。
注意的点就是:工程路径中不能出现空格,中文路径未测试。

三、下面说说工程代码。
简单的参考了这位博主的文章:https://blog.csdn.net/beidideshu/article/details/127208168

下面具体说说blink这个工程实现的功能:
这个工程有两种模式:
1、CONFIG_BLINK_LED_RMT 模式
2、CONFIG_BLINK_LED_GPIO 模式
通过跟踪,可以发现 CONFIG_BLINK_LED_RMT 模式下,是用于驱动WS2812这种自带驱动的三色LED,此种方式通常是发送一串规定宽度的脉冲给WS2812从而点亮该LED。而CONFIG_BLINK_LED_GPIO 模式则是我们常见的普通GPIO电平驱动普通LED的方式。

3、在普通GPIO模式下,可以通过修改portmacro.h下边的portTICK_PERIOD_MS 宏定义来修改LED的脉宽时间。
vTaskDelay(CONFIG_BLINK_PERIOD / portTICK_PERIOD_MS)这个函数延时的基本单位猜测是10ms。这里CONFIG_BLINK_PERIOD在sdkconfig.h里定义为1000, 跟踪portTICK_PERIOD_MS定义为

#define portTICK_PERIOD_MS              ( ( TickType_t ) 1000 / configTICK_RATE_HZ )

再跟踪 configTICK_RATE_HZ

#define configTICK_RATE_HZ                              CONFIG_FREERTOS_HZ

而 CONFIG_FREERTOS_HZ在sdkconfig.h里定义为100

#define CONFIG_FREERTOS_HZ 100
void app_main(void)
{
    /* Configure the peripheral according to the LED type */
    configure_led();

    while (1) {
        ESP_LOGI(TAG, "Turning the LED %s!", s_led_state == true ? "ON" : "OFF");
        blink_led();
        /* Toggle the LED state */
        s_led_state = !s_led_state;
        vTaskDelay(CONFIG_BLINK_PERIOD / portTICK_PERIOD_MS);
    }
}

#define portCRITICAL_NESTING_IN_TCB     0
#define portSTACK_GROWTH                ( -1 )
#define portTICK_PERIOD_MS              ( ( TickType_t ) 1000 / configTICK_RATE_HZ )

//#define portTICK_PERIOD_MS              ( ( TickType_t ) 5000 / configTICK_RATE_HZ )
#define portBYTE_ALIGNMENT              4
#define portNOP()                       XT_NOP()

当需要修改配置时,需要点击左侧工程窗口里的sdkconfig组件,在组件里进入配置并保存,然后关闭配置窗口。再回到main文件,fresh更新一下后保存,重新编译再下载。如下图:
在这里插入图片描述
再重新烧录进模组,功能就实现了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值