【esp32 學習筆記】(esp-idf 版本)從點燈開始——點亮LED

FBshark發表於2024-07-28

【配置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

相關文章