合宙esp32c3用esp-idf点灯

代码

#include <stdio.h>

#include "sdkconfig.h"

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"

#include "esp_system.h"

#include "driver/gpio.h"

#include "esp_log.h"

static const char *TAG = "led example";

void app_main(void)
{
    ESP_LOGI(TAG, "led test");
    ESP_ERROR_CHECK(gpio_set_direction(13, GPIO_MODE_OUTPUT));
    ESP_ERROR_CHECK(gpio_set_direction(12, GPIO_MODE_OUTPUT));
    gpio_set_level(13, 1);
    gpio_set_level(12, 0);

    while (1)
    {
        ESP_LOGI(TAG, "led high");
        gpio_set_level(13, 1);
        gpio_set_level(12, 0);
        vTaskDelay(1000 / portTICK_PERIOD_MS);
        ESP_LOGI(TAG, "led low");
        gpio_set_level(13, 0);
        gpio_set_level(12, 1);
        vTaskDelay(1000 / portTICK_PERIOD_MS);
    }
}

分部解释

引用部分

#include <stdio.h>

#include "sdkconfig.h"

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"

#include "esp_system.h"

#include "driver/gpio.h"

#include "esp_log.h"

这个#include <stdio.h>就是默认要加的,不用太关注。

#include "sdkconfig.h"是sdk的配置文件,也是默认引用的,但是这里没有用到。sdk配置文件简单理解就是用来设置烧录时候的各种参数的,比如DIO,flash是2M还是4M。然后会自动生成一个sdkconfig.h的文件,方便用户引用。

#include "freertos/FreeRTOS.h" #include "freertos/task.h"在这里只是为了用freeRTOS的延时函数。dis一下,官方也不提供点好用的延时。

#include "esp_system.h"延时和一些基本系统操作,这里没用到,官方延时不好用。

#include "driver/gpio.h"gpio相关的库。

#include "esp_log.h"log的库,用来输出log的,和printf比 ,log输出是对printf的改版和标准化。log输出有颜色,有信息,有来源,有内容,有等级。看起来更舒服,用起来也舒服。

内容部分

//log的标识,用来指示来源的,写什么都行,只要自己知道是啥意思就好
static const char *TAG = "led example";

void app_main(void)
{
    ESP_LOGI(TAG, "led test");//log info 输出
    //初始化 gpio,这里只初始化了一个,多个io初始化可以看官方的例程
    //ESP_ERROR_CHECK是错误处理,点个灯,加不加无所谓
    ESP_ERROR_CHECK(gpio_set_direction(13, GPIO_MODE_OUTPUT));
    ESP_ERROR_CHECK(gpio_set_direction(12, GPIO_MODE_OUTPUT));
    //设置gpio高低电平
    gpio_set_level(13, 1);
    gpio_set_level(12, 0);

    while (1)
    {
        ESP_LOGI(TAG, "led high");
        gpio_set_level(13, 1);
        gpio_set_level(12, 0);
        //延时1s
        vTaskDelay(1000 / portTICK_PERIOD_MS);
        ESP_LOGI(TAG, "led low");
        gpio_set_level(13, 0);
        gpio_set_level(12, 1);
        vTaskDelay(1000 / portTICK_PERIOD_MS);
    }
}

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值