【Java程序员学ESP32】04 ESP-IDF代码学习-blink

已经搭建好了开发环境后就可以很方便的用Clion打开官方的example程序,编译烧录。
安装篇已经测试了hello_world工程,本篇介绍第二个起步工程 - blink,从工程的名字来看就是让开发板上的LED灯闪烁。

  1. 使用Clion打开blink工程(开发环境的搭建还是很重要的,后面的学习更加方便😀)
    在这里插入图片描述
    从README文件中可以看到,这个示例是使用GPIO控制开发板上LED等闪烁,后面一部分led_strip以后再学习。

  2. 查看代码

#define BLINK_GPIO CONFIG_BLINK_GPIO  //用于控制闪烁的 GIPO pin号,默认是 5

static uint8_t s_led_state = 0; //状态标志位

static void blink_led(void)
{
    /* 设置GPIO的高低电平 */
    gpio_set_level(BLINK_GPIO, s_led_state);
}

static void configure_led(void)
{
    ESP_LOGI(TAG, "Example configured to blink GPIO LED!");
    gpio_reset_pin(BLINK_GPIO);
    /* 设置GPIO的输出模式 */
    gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
}

void app_main(void)
{

    /* Configure the peripheral according to the LED type */
    configure_led();

    while (1) {
        ESP_LOGI(TAG, "Turning the LED %s!", s_led_state == true ? "ON" : "OFF");
        blink_led();
        /* 反转 LED 状态标志位,达到闪烁的目的*/
        s_led_state = !s_led_state;
        vTaskDelay(CONFIG_BLINK_PERIOD / portTICK_PERIOD_MS);
    }
}
  1. 这里用到了ESP_IDF中关于GPIO的几个函数,推荐查看官方手册了解一下功能,下载地址
esp_err_t gpio_set_level(gpio_num_t gpio_num, uint32_t level)

GPIO set output level.

参数
• gpio_num –GPIO pin号. 例如你想设置 GPIO16的输出, gpio_num 应该为 GPIO_NUM_16 (16);
• level –输出高低电平. 0: low ; 1: high
返回
• ESP_OK Success
• ESP_ERR_INVALID_ARG GPIO number error
esp_err_t gpio_reset_pin(gpio_num_t gpio_num)

设置GPIO到默认状态
参数 gpio_num – GPIO pin号.
返回 Always return ESP_OK
esp_err_t gpio_set_direction(gpio_num_t gpio_num, gpio_mode_t mode)

GPIO set direction.设置GPIO方向
设置GPIO方向,例如 output_only,input_only,output_and_input
参数
• gpio_num –设置GPIO的pin号
• mode –GPIO direction
返回
• ESP_OK Success
• ESP_ERR_INVALID_ARG GPIO error

GPIO的函数还很多,遇到相关的函数时可以通过查询手册来了解函数功能。

  1. 编译烧录,发现LED并没有闪烁,囧
  2. 查看了开发板的原理图,发现LED连接的GPIO引脚是8,需要修改
    方式一:通过idf.py menuconfig (推荐)
    在这里插入图片描述
    在这里插入图片描述
    方式二:直接修改 sdkconfig文件
    在这里插入图片描述
    再次编译烧录,可以看到LED等的闪烁了😀
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值