ESP32学习——VSCode点灯实验

本次实验是使用GOOUUU-ESP32-C3开发板,芯片型号为ESP32-C3-MINI-1,使用下载方式是USB串口,芯片资料:ESP32-C3-MINI-1/ESP32-C3-MINI-1U数据手册,通过VSCode中的espressif-idf插件开发。

一、硬件介绍

1、通过数据手册可以得知芯片的所引脚,且启动管脚为IO2、IO8和IO9。

2、查看开发板原理图可以得知开发板有一个三色LED的引脚为IO3、IO4、IO5,分别控制着红色,绿色和蓝色

二、点亮LED灯实验

1、打开VSCode,快捷键Ctrl+Shift+P打开命令面板,输入show exmaples projects打开示例程序,选择sample_project样本示例,里面是个空项目,并且选择不要出现中文或空格的路径保存,否则程序无法编译,会报错;

步骤1:打开示例项目

步骤2:选择样本示例,保存项目路径

2、通过硬件得知LED为IO3、IO4、IO5控制,本实验只控制蓝色LED,引脚为IO5,打开main.c文件,所有程序就在main.c文件编写了,首先就得引用所需的头文件,定义LED引脚,配置LED,控制LED亮灭;

步骤1:打开main.c文件

步骤2:引用头文件,定义LED引脚

#include "driver/gpio.h"    //GPIO固件库

#define blueLED GPIO_NUM_2    //定义蓝色LED引脚

步骤3:配置LED推挽输出

gpio_reset_pin(blueLED);    //复位LED
gpio_set_direction(blueLED, GPIO_MODE_OUTPUT);    //配置LED输入输出

步骤4::通过硬件电路,得知LED一端连接VCC,另一端连接LED引脚,所以通过控制LED引脚高电平让LED灭,低电平让LED,但程序执行效率很快,肉眼无法直观看到LED亮灭,所以需要延时

a、引用头文件

#include "freertos/FreeRTOS.h"    //FreeRTOS固件库
#include "freertos/task.h"        //延时函数需要用到该头文件

b、在app_main函数中循环

while(true)
{
    gpio_set_level(blueLED, 0);    //LED亮
    vTaskDelay(1000 / portTICK_PERIOD_MS);    //延时1000ms,portTICK_PERIOD_MS为毫米周期
    gpio_set_level(blueLED, 1);    //LED灭
    vTaskDelay(1000 / portTICK_PERIOD_MS);
}

main.c程序

#include <stdio.h>
#include "driver/gpio.h"    //GPIO固件库
#include "freertos/FreeRTOS.h"    //FreeROTS固件库
#include "freertos/task.h"        //延时函数需要用到该头文件

#define blueLED GPIO_NUM_5  //定义蓝色LED引脚
void app_main(void)
{
    gpio_reset_pin(blueLED);    //复位LED
    gpio_set_direction(blueLED, GPIO_MODE_OUTPUT);    //配置LED输入输出

    while (true)
    {
        gpio_set_level(blueLED, 0); //LED亮
        vTaskDelay(1000 / portTICK_PERIOD_MS);   //延时1000ms,portTICK_PERIOD_MS为毫米周期
        gpio_set_level(blueLED, 1); //LED灭
        vTaskDelay(1000 / portTICK_PERIOD_MS);
    }
    
}

3、连接开发板,在VSCode底部有espressif工具,选择对应的端口号、芯片型号和烧录方式,进行程序编译,最后点击下载,查看实验效果;

实验效果:

二、呼吸灯实验

1、本次实验是利用LED PWM控制器实现的呼吸灯,具体可以查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值