例程1,基于ESP32S2模块编写,用于自学实习和理解说明
*************声明本实例来自乐鑫ESP32 gpio_example_main.c***************
***************仅作自己学习和更深一步理解的记录***************
/**
* @file RtosStudy.c
* @author your name (you@domain.com)
* @brief
* @version 0.1
* @date 2022-06-02
*
* @copyright Copyright (c) 2022
*
* 本人刚学RTOS,例程用于学习实践理解
* 芯片:ESP32S2模块
* 开发环境:vscode
* 原例程:ESP IDF EXAMPLES, GPIO
* 硬件连线:
* 模块中GPIO_OUTPUT_IO_0 GPIO_OUTPUT_IO_1分别与GPIO_INPUT_IO_0 GPIO_INPUT_IO_1相连
* 按键输入GPIO_INPUT_IO_2
* 调试:编译烧录并监控烧录口信息
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "esp_log.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "freertos/semphr.h"
#include "driver/gpio.h"
const char *TAG="RtosStudy";
#define GPIO_OUTPUT_IO_0 42
#define GPIO_OUTPUT_IO_1 41
#define GPIO_OUTPUT_PIN_SEL ((1ULL<<GPIO_OUTPUT_IO_0) | (1ULL<<GPIO_OUTPUT_IO_1))
#define GPIO_INPUT_IO_0 4
#define GPIO_INPUT_IO_1 5
#define GPIO_INPUT_IO_2 8//key in
#define GPIO_INPUT_PIN_SEL ((1ULL<<GPIO_INPUT_IO_0) | (1ULL<<GPIO_INPUT_IO_1) | (1ULL<<GPIO_INPUT_IO_2))
#define ESP_INTR_FLAG_DEFAULT 0
#define KeyInPin GPIO_INPUT_IO_2
static xQueueHandle gpio_evt_queue = NULL;
static xSemaphoreHandle key_press_queue = NULL;
static xSemaphoreHandle key_press_queue_counter = NULL;
uint32_t TaskCount=0,TaskCountIO=0;
uint32_t KeyPressCount=0;