.pin_bit_mask = (1ull<< gpio_num), .mode = GPIO_MODE_OUTPUT, .pull_up_en =0, .pull_down_en =1, .intr_type =0, };gpio_config(&cfg); } .h文件使用如下所示: #ifndef_LED_DRIVER__H_#define_LED_DRIVER__H_#include"driver/gpio.h"voidled_init(gpio_num_tgpio_num);#endif//...
输入: gpio_num:要配置的引脚号;intr_type:触发类型(枚举值) 返回值: ESP_OK:成功;其它:失败 */ esp_err_t gpio_set_intr_type(gpio_num_t gpio_num, gpio_int_type_t intr_type) /* 函数: gpio_install_isr_service 功能: 安装GPIO中断服务 -> 分配中断标志,与gpio_isr_register()有冲突。 输入...
esp_err_tgpio_set_direction(gpio_num_t gpio_num,gpio_mode_t mode); 设置GPIO的方向,gpio_num取值同上,mode取值如下: 代码语言:javascript 复制 typedefenum{GPIO_MODE_DISABLE=GPIO_MODE_DEF_DISABLE,// 失能GPIO_MODE_INPUT=GPIO_MODE_DEF_INPUT,//输入模式GPIO_MODE_OUTPUT=GPIO_MODE_DEF_OUTPUT,//输...
uint32_t gpio_num = (uint32_t) arg; xQueueSendFromISR(gpio_evt_queue, &gpio_num, NULL);//中断后发送io消息 } static void gpio_task_example(void* arg) { uint32_t io_num; for(;;) { if(xQueueReceive(gpio_evt_queue, &io_num, portMAX_DELAY)) //收到消息打印对应引脚的电平 { p...
3. 之后只需要执行 gpio_set_level(gpio_num_t gpio_num, uint32_t level);函数就可以使起输出高低电平了。 4. 如果想使用中断的话,则需要在后gpio_config(&io_conf);后配置中断。 //定义回调函数//注意IRAM_ATTR ,是将定义的中断回调函数定义在iram区staticvoidIRAM_ATTRisr_handler(void*arg){...}/...
} gpio_int_type_t; 中断枚举结构体有7种情况,禁用中断,上升沿触发,下降沿触发,边沿触发,低压触发,高压触发。 esp_err_t gpio_set_level(gpio_num_t gpio_num, uint32_t level);intgpio_get_level(gpio_num_t gpio_num); set_level和get_Level用来设置io的的高低电平和读取io的电平。
static void IRAM_ATTR gpio_isr_handler(void* arg){ uint32_t gpio_num = (uint32_t) arg;...
static xQueueHandle gpio_evt_queue = NULL; //定义一个队列返回变量 void IRAM_ATTR gpio_isr_handler(void* arg) { //把中断消息插入到队列的后面,将gpio的io参数传递到队列中 uint32_t gpio_num = (uint32_t) arg; xQueueSendFromISR(gpio_evt_queue, &gpio_num, NULL); ...
gpio_isr_handler_add(GPIO_INPUT_IO_0,gpio_isr_handler,(void*)GPIO_INPUT_IO_0); //再次添加 staticvoidIRAM_ATTRgpio_isr_handler(void*arg) { uint32_tgpio_num=(uint32_t)arg; xQueueSendFromISR(gpio_evt_queue,&gpio_num,NULL);
GPIO39硬件电路已外接上拉电阻,如果注释掉BLE部分代码,GPIO39中断触发是正常的。 关键代码: 在demo例程ble_spp_server的基础上添加GPIO39的GPIO初始化和中断初始化函数 Code: [Select all] [Expand/Collapse] static void IRAM_ATTR gpio_isr_handler(void* arg) { uint32_t gpio_num = (uint32_t) arg; ...