首页 > 其他分享 >ESP32: Blink 示例

ESP32: Blink 示例

时间:2023-02-16 22:12:39浏览次数:28  
标签:示例 ESP32 Blink idf GPIO BLINK

目录

Blink示例

新做一个LED灯闪烁的示例程序并烧录到 ESP32开发板中,实验最终效果如下图所示:
img

创建项目

首先,打开 VS Code 从模板项目创建 Blink 项目,按 F1 或选择顶部菜单【查看/命令面板(Ctrl + Shift + P)】,

在命令行中输入:esp-idf show,在显示的下来菜单中选择【展示示例项目】

1676553715607

然后选择当前的 ESP-IDF 开发环境,如下图所示:

1676553766309

然后选择【blink】示例,如下图所示进行操作:

然后选择项目的保存地址,这样就创建了 blink 项目了,如下图所示:

1676553891835

程序入口

main/blink.c

/* Blink Example

   This example code is in the Public Domain (or CC0 licensed, at your option.)

   Unless required by applicable law or agreed to in writing, this
   software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
   CONDITIONS OF ANY KIND, either express or implied.
*/
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "sdkconfig.h"

/* Can use project configuration menu (idf.py menuconfig) to choose the GPIO to blink,
   or you can edit the following line and set a number here.
*/
#define BLINK_GPIO CONFIG_BLINK_GPIO

void app_main(void)
{
    /* Configure the IOMUX register for pad BLINK_GPIO (some pads are
       muxed to GPIO on reset already, but some default to other
       functions and need to be switched to GPIO. Consult the
       Technical Reference for a list of pads and their default
       functions.)
    */
    gpio_reset_pin(BLINK_GPIO);
    /* Set the GPIO as a push/pull output */
    gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
    while(1) {
        /* Blink off (output low) */
        printf("Turning off the LED\n");
        gpio_set_level(BLINK_GPIO, 0);
        vTaskDelay(1000 / portTICK_PERIOD_MS);
        /* Blink on (output high) */
        printf("Turning on the LED\n");
        gpio_set_level(BLINK_GPIO, 1);
        vTaskDelay(1000 / portTICK_PERIOD_MS);
    }
}

打开 idf.py 前端

对于Windows系统,可以直接在程序列表查找并打开 ESP-IDF 4.3 CMDESP-IDF 4.3 PowerShell,终端打开后会自动添加环境变量,执行如下命令,切换到项目根目录:

> cd F:\05-workspace\dev\01-lab\esp32\book-esp32-c3-guide\src\ch04\blink

设置目标设备

使用如下命令将编译目标设置为 ESP32-C3

idf.py set-target esp32c3

这时将自动生成配置文件 sdkconfig

配置 GPIO

接着使用命令

idf.py menuconfig

弹出配置界面:

1676554528360

进入选项配置界面,按向上/向下按键和Enter按键进入Example Configuration,选择【Blink GPIO number】,输入数字将GPIO改为指定引脚,如下图所示,按照提示进行保存即可。

保存后,按【ESC】退出。

这时配置文件 sdkconfig的这个配置先已经修改为8,

CONFIG_BLINK_GPIO=8

同时产生了一个旧的配置文件 sdkconfig.old

硬件连线

所用材料

材料 数量
ESP32-C3 开发板 1个
LED灯 1个
杜邦线 2条

连线

按照下图进行连线:

img
  1. LED等的正极(针脚比较长的一脚为正极)连接ESP32-C3 开发板的 8 针脚;

  2. LED等的负极连接ESP32-C3 开发板的 GND 针脚

  3. 最后使用 USB 线将 ESP32-C3 开发板连接到PC,查看其连接的端口后,我这里的端口是 COM7

编译工程

然后依次如下命令进行编译

idf.py build              # 编译工程

烧录与监视输出

然后依次如下命令进行烧录与监视输出

idf.py -p COM7 flash monitor # 烧录到设备并监视输出

结果

LED 等开始闪烁,如下图所示:

img

标签:示例,ESP32,Blink,idf,GPIO,BLINK
From: https://www.cnblogs.com/easy5weikai/p/17128488.html

相关文章

  • ChatGPT:用delphi写一个键盘鼠标的全局钩子dll示例
    libraryGlobalHooks;usesWindows;{$R*.res}constWH_KEYBOARD_LL=13;WH_MOUSE_LL=14;typeTKeyboardHook=recordHook:HHOOK;Callba......
  • esp32 定时器 Arduino 库使用
    //引入定时器库#include<Ticker.h>//实例化定时器对象Tickertime1;Tickertime2;Tickertime3;Tickertime4;voidtime1_callback(){Serial.println("......
  • WinForm滚动条美化-Panel示例(一)
    关于滚动条美化网上翻阅相关资料大概分两种,一是覆盖原有滚动条;二是纯靠绘制+钩子实现;两种实现方式都依赖系统Api来实现;话不多说先上效果图该效果主要是隐藏滚动条;消息拦......
  • ESP32 开发环境的搭建与详解
    ESP32开发环境的搭建与详解目录ESP32开发环境的搭建与详解ESP-IDF安装windows系统VSCode代码编辑工具vscode-esp-idf-extensionHello_world示例创建项目程序入口串......
  • antd table 自定义折叠展开图标(示例)
    expandable={{expandedRowKeys,onExpandedRowsChange:(expandedRows)=>{updateState((draft)=......
  • 附录E示例-Tin_3
    示例概述意图这个场景有一个很小的三角网(只有1.5K个三角形),中间没有空隙。 内容为地理参考:-地图投影MGA9456区的水平坐标为东距和北距,-垂直坐标为AHD,-水平和垂直基准......
  • 【OpenCV】-边缘检测汇总示例
    汇总之前:这一节还有一个scharr滤波器(也是算子)没有介绍,先介绍一下。。。1计算图像差分:Scharr()函数使用Scharr滤波器运算符计算x或y方向的图像差分,包含的参数与Sobel算子基......
  • 【OpenCV】图片尺寸放缩示例程序
    这次示例程序分别演示了用resize、pyrUp、pyrDown来让源图像进行放大缩小操作#include<opencv2/opencv.hpp>#include<opencv2/imgproc/imgproc.hpp>#include<opencv2/highgu......
  • awk多字符串分割用法示例
    多字符串分割用单引号,不要用“[]”,但多个直接仍然用竖号分隔,需要转义的也仍然用斜杠“\”,但注意需要两个斜杠“\”,因为斜杠本身也需要转义。示例:两个多字符串分割符,分别为......
  • 使用Arduino IDE测试ESP32-WROOM显示No Serial Data Received提示以及串口监视器空白
    如果你使用ArduinoIDE测试刚买来的ESP32-WROOM的好坏,但是按照教程上传程序但是显示NoSerialDataReceived。包括但不限于以下原因:上传程序用的microUSB线有问题,这种......