【配置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、燒錄前準備和燒錄
- 執行idf.py menuconfig命令,配置sdkconfig,初學者可不用設定裡邊的具體內容,一切預設即可
- 設定埠,執行idf.py -p COM5命令,不一定是COM5,要根據自己的埠設定
- 對工程進行編譯,執行idf.py build命令
- 燒錄工程,執行idf.py flash命令
編譯完成後會終端會提示燒錄等相關資訊
參考資料:
原文連結:https://blog.csdn.net/weixin_43803230/article/details/131511563