首页 > 其他分享 >【esp32 学习笔记】(esp-idf 版本)从点灯开始——点亮LED

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

时间:2024-07-28 19:51:29浏览次数:13  
标签:烧录 led esp esp32 idf LED include void

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

标签:烧录,led,esp,esp32,idf,LED,include,void
From: https://www.cnblogs.com/FBsharl/p/18328762

相关文章

  • 【ESP01开发实例】-ESP-01开发环境搭建与固件烧录
    ESP-01开发环境搭建与固件烧录文章目录ESP-01开发环境搭建与固件烧录1、ESP-01介绍2、开发环境搭建3、固件下载3.1使用ArduinoUNO板对ESP8266(ESP-01)模块进行编程3.2使用USB转串口转换器对ESP8266(ESP-01)模块进行编程4、点亮LED本文将......
  • 【嵌入式DIY实例-ESP8266篇】- LCD ST7789显示BME280传感器数据
    LCDST7789显示BME280传感器数据文章目录LCDST7789显示BME280传感器数据1、硬件准备2、代码实现本文将介绍如何使用ESP8266NodeMCU开发板(ESP12-E模块)和BME280气压、温度和湿度传感器构建一个简单的气象站。NodeMCU微控制器(ESP8266EX)从BME280......
  • 征服 Docker 镜像访问限制:KubeSphere v3.4.1 成功部署全攻略
    近期,KubeSphere社区的讨论中频繁出现关于Docker官方镜像仓库访问受限的问题。本文旨在为您提供一个详细的指南,展示在Docker官方镜像访问受限的情况下,如何通过KubeKeyv3.1.2一次性成功部署KubeSpherev3.4.1以及Kubernetesv1.28.8集群。这将帮助您克服访问限制,确保......
  • 命名空间namespace
    namespaceJill{doublebucket(doublen){...}doublefetch;structHill{..};}charfetch;//全局作用域intmain(){usingnamespaceJill;//包含Jill作用域HillThrill;//Jill作用域中的thrilldoublewater=bucket(2);doublefetch;......
  • 学习STM32的LED点阵显示
    学习STM32的LED点阵显示内容需要涉及到几个方面:硬件准备、软件工具、基本原理以及代码实例。下面我将详细介绍每个方面的内容。一、硬件准备选择合适的开发板:根据自己的需求和预算选择一款适合的开发板。常见的STM32开发板有STM32F103系列、STM32F407系列等。连接LED点阵:将LE......
  • Python 请求 - response.json() 未按预期工作
    我正在尝试从Python的requests模块调用API。在邮递员上,返回的响应标头中的Content-Type是application/json;charset=utf-8,响应json数据是我期望的样子。但是,在python上的API的get方法之后运行response.json()会抛出错误simplejson.errors......
  • Singledispatch 并将类型作为输入参数
    我希望能够做到这一点:fromtypingimportTypefromfunctoolsimportsingledispatchclassA:passclassB(A):pass@singledispatchdeffoo(arg):print('default')@foo.registerdef_(arg:Type[A]):print(arg)foo(A)foo(B)但是,我得到......
  • Linux: 更新系统相关依赖命令yum update执行失败: One of the configured repositorie
    环境:CentOS7(ISO映像文件=CentOS-7-x86_64-DVD-2009.iso)解决思路:系统repo镜像源连接问题导致执行失败,切换repo为国内源即可#切换仓库镜像源curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-7.repo#或者wget-O/etc/yum.rep......
  • Linux捣鼓记录:debian12日志警告:firmware: failed to load iwl-debug-yoyo.bin (-2)
    问题现象:网卡为intelax200,系统为debian12蓝牙wifi使用功能一切正常,根据wiki检查了驱动也都已经安装,但每次开机后,查看cockpit日志会看到警告:firmware:failedtoloadiwl-debug-yoyo.bin(-2)......问题分析:检索网络得到初步结论:iwl-debug-yoyo.bin是一个intel网卡相关的de......
  • Raft协议深度解析:RocketMQ中基于DLedger的日志主从复制
    本文所涉及的注释源码:bigcoder84/dledgerRaft协议主要包含两个部分:Leader选举和日志复制。前面我们在Raft协议深度解析:RocketMQ中的自动Leader选举与故障转移一文中已经详细介绍了DLedger如何实现Leader选举的,而本文主要聚焦于Leader选举完成后的日志复制的过程。一.Rock......