【esp32 学习笔记】(esp-idf 版本)从点灯开始——点亮LED

【配置CMakeLists】

首先配置自定义组件的CMake文件:components->led->CMakeLists.txt完整配置内容如下:

file(TO_CMAKE_PATH "$ENV{IDF_PATH}" IDF_PATH)  # 将Windows下ESP-IDF的路径转化CMAKE路径

idf_component_register(SRCS "led.c"
                    INCLUDE_DIRS "include"
                    # 添加官方gpio组件
                    "${IDF_PATH}/components/driver/gpio/include"
                    )


【配置自定义组件头文件】

components->led->include->led.h对于学过32单片机编程的,可按照自己的习惯编写,对于没有单片机开发经验的,再此提供一个简单的例子

#ifndef __LED_H
#define __LED_H
 
#include "driver/gpio.h"

void led_init(void);
void led_on(void);
void led_off(void);

#endif


【编写自定义组件驱动】
components->led->led.c和头文件类似,可根据习惯编写。

#include <stdio.h>
#include "led.h"


#define LED_PIN 2

void led_init(void)
{
    gpio_config_t led_pin_config;
    led_pin_config.pin_bit_mask = 1<<LED_PIN;
    led_pin_config.mode = GPIO_MODE_OUTPUT;
    led_pin_config.pull_up_en = GPIO_PULLUP_DISABLE;
    led_pin_config.pull_down_en = GPIO_PULLDOWN_DISABLE;
    gpio_config(&led_pin_config);
}

void led_on(void)
{    
    gpio_set_level(LED_PIN, 1);
}

void led_off(void)
{
     gpio_set_level(LED_PIN, 0);
}


【编写主函数】
main->main.c,这里注意头文件的包含。

#include <stdio.h>
#include "led.h"
#include "FreeRTOS/freertos.h"
#include "FreeRTOS/task.h"


void app_main(void)
{
    while(1)
    {
        led_init();
        led_on();
        vTaskDelay(50);
        led_off();
        vTaskDelay(50);
    }
    
}


3、烧录前准备和烧录

  1.  运行idf.py menuconfig命令,配置sdkconfig,初学者可不用设置里边的具体内容,一切默认即可
  2. 设置端口,运行idf.py -p COM5命令,不一定是COM5,要根据自己的端口设置
  3. 对工程进行编译,运行idf.py build命令
  4. 烧录工程,运行idf.py flash命令

编译完成后会终端会提示烧录等相关信息

 

 

参考资料:                        
原文链接:https://blog.csdn.net/weixin_43803230/article/details/131511563

posted @ 2024-07-28 19:45  FBshark  阅读(1)  评论(0编辑  收藏  举报