ESP32 开发笔记(三)源码示例 一、LED

开发板购买连接windows

https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.50111deb2Ij1As&ft=t&id=626366733674app

开发板简介
开发环境搭建 windows
源码示例:
    0_Hello Bug (ESP_LOGX与printf)    工程模板/打印调试输出
    1_LED                                                    LED亮灭控制       
    2_LED_Task                                          使用任务方式控制LED
    3_LEDC_PWM                                      使用LEDC来控制LED实现呼吸灯效果
    4_ADC_LightR                                      使用ADC读取光敏电阻实现光照传感
    5_KEY_Short_Long                              按钮长按短按实现
    6_TouchPad_Interrupt                          电容触摸中断实现
    7_WS2812_RMT                                  RGB_LED彩虹变色示例
    8_DHT11_RMT                                    使用RMT实现读取DHT11温湿度传感器
    9_SPI_SDCard                                    使用SPI总线实现TF卡文件系统示例
    10_IIC_ADXL345                                使用IIC总线实现读取ADXL345角度加速度传感器
    11_IIC_AT24C02                                 使用IIC总线实现小容量数据储存测试
    12_IR_Rev_RMT                                使用RMT实现红外遥控接收扫码(NEC)
    13_IR_Send_RMT                              使用RMT实现红外数据发送(NEC)
    14_WIFI_Scan                                    附近WIFI信号扫描示例    
    15_WIFI_AP                                        建立软AP示例
    16_WIFI_AP_TCP_Server                  在软AP模式下实现TCP服务端
    17_WIFI_AP_TCP_Client                   在软AP模式下实现TCP客户端
    18_WIFI_AP_UDP                              在软AP模式下实现UDP通信
    19_WIFI_STA                                      建立STA站模
    20_WIFI_STA_TCP_Server                在站模式STA下实现TCP服务端
    21_WIFI_STA_TCP_Client                 在站模式STA下实现TCP客户端
    22_WIFI_STA_UDP                            在站模式STA下实现UDP通信
    23_LVGL_Test                                     LVGL图形库简单示例框架

1、硬件设计/原理

查看开发板原理图,能够看到开发板上有两个指示灯,一个是电源指示灯,直接3.3V到地,不受程序控制,APP_LED接在ESP32-WROOM-32E集成模拟的GPIO4脚上,看原理图可得知IO4拉高LED即灭掉,到地则亮起函数

2、程序设计

先引用必要头文件测试

控制LED其实就是控制GPIO的电平高低,须要操做GPIO因此要引入esp_idf框架的gpio头文件ui

#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "sdkconfig.h"
#include <esp_log.h>
#include "driver/gpio.h"

定义LED所链接的GPIO号spa

#define BLINK_GPIO			4	// LED 链接的 GPIO端口

编写main函数.net

void app_main(void)
{
	ESP_LOGI(TAG, "APP Start......");

	gpio_pad_select_gpio(BLINK_GPIO);// 选择要操做的GPIO
	gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);// 设置GPIO为推挽输出模式

	while(1) {
		ESP_LOGI(TAG, "Turning On the LED\n");
		gpio_set_level(BLINK_GPIO, 0);// GPIO输出低
		vTaskDelay(1000 / portTICK_PERIOD_MS);
		
		ESP_LOGI(TAG, "Turning Off the LED\n");
		gpio_set_level(BLINK_GPIO, 1);// GPIO输出高
		vTaskDelay(1000 / portTICK_PERIOD_MS);
	}
}

void gpio_pad_select_gpio(uint8_t gpio_num);设计

把输出信号绑定到指定的索引上,就是输出的第一步,把输入引脚和相应的索引号绑定3d

esp_err_t gpio_set_direction(gpio_num_t gpio_num, gpio_mode_t mode);

设置指定gpio的工做模式,可选项

    GPIO_MODE_DISABLE

    GPIO_MODE_INPUT

    GPIO_MODE_OUTPUT

    GPIO_MODE_OUTPUT_OD

    GPIO_MODE_INPUT_OUTPUT_OD

    GPIO_MODE_INPUT_OUTPUT

esp_err_t gpio_set_level(gpio_num_t gpio_num, uint32_t level);

设置指定gpio的电平

3、下载测试

打开ESP-IDF Command Prompt

cd命令进入此工程目录

 

执行idf.py -p COM9 flash monitor从串口9下载并运行打开口显示设备调试信息   Ctrl+c退出运行

 

能够看到开发板的APP_LED一直闪烁。