intr_type:中断类型 GPIO_INTR_DISABLE(禁止中断) GPIO_INTR_POSEDGE(上升沿触发) GPIO_INTR_NEGEDGE(下降沿触发) GPIO_INTR_ANYEDGE(边沿触发) GPIO__INTR_LOW_LEVEL(低电平触发) GPIO_INTR_HIGH_LEVEL(高电平触发)。 mode:GPIO口的工作模式, GPIO_MODE_INPUT(输入模式) GPIO_MODE_OUTPUT(输出模式) GPIO_MO...
GPIO_INTR_POSEDGE 上升沿触发 GPIO_INTR_NEGEDGE 下降沿触发 GPIO_INTR_ANYEDGE 任意边沿触发 GPIO_INTR_LOW_LEVEL 低电平触发 GPIO_INTR_HIGH_LEVEL 高电平触发
void Z_Init_IT_GPIO(void){ gpio_config_t init; init.intr_type = GPIO_INTR_POSEDGE; // 开启上升沿中断; init.mode = GPIO_MODE_INPUT; // 输入模式 init.pin_bit_mask = (1ULL << 10); // GPIO10 init.pull_down_en = GPIO_PULLDOWN_DISABLE; // 失能下拉模式 init.pull_up_en = GP...
INTR_HIGH_LEVEL输入高电平触发GPIO_INTR_DISABLE失能中断GPIO_INTR_POSEDGE上升沿表10.3.2.2 gpio_...
io_conf.intr_type = GPIO_PIN_INTR_POSEDGE;//上升沿中断//bit mask of the pins, use GPIO4/...
pingpio_set_intr_type(GPIO_INPUT_IO_0, GPIO_INTR_POSEDGE);//单独改变某个IO口的中断设置//create a queue to handle gpio event from isrgpio_evt_queue = xQueueCreate(10,sizeof(uint32_t));//创建消息队列//start gpio taskxTaskCreate(gpio_task_example,"gpio_task_example",2048,NULL,10,NULL...
xQueueSendFromISR(gpio_evt_queue, &gpio_num, NULL); //freertos中断中发送消息队列 } static void gpio_task_example(void* arg) { uint32_t io_num; for(;;) { if(xQueueReceive(gpio_evt_queue, &io_num, portMAX_DELAY)) { printf("GPIO[%d] intr, val: %d\n", io_num, gpio_get_lev...
3 gpio_config_t io_conf; 4 //定义一个gpio_config类型的结构体,下面的都算对其进行的配置 5 //disable interrupt 6 io_conf.intr_type = GPIO_PIN_INTR_DISABLE; 7 //set as output mode 8 io_conf.mode = GPIO_MODE_OUTPUT; 9 //bit mask of the pins that you want to set,e.g.GPIO18/...
.pull_down_en = GPIO_PULLUP_DISABLE, .intr_type = GPIO_INTR_POSEDGE, }; gpio_config(&cfg);//创建消息队列、注册中断函数key_queue = xQueueCreate(10,sizeof(uint32_t)); gpio_install_isr_service(0); gpio_isr_handler_add(KEY_PIN, key_isr_handler, (void*)KEY_PIN);while(pdTRUE) ...
io_conf.intr_type=GPIO_INTR_POSEDGE; //设置上升沿中断 //bitmaskofthepins,useGPIO4/5here io_conf.pin_bit_mask=GPIO_INPUT_PIN_SEL; //io脚位掩码,用位运算左移到需要改变的位进行操作 //setasinputmode io_conf.mode=GPIO_MODE_INPUT;//设置为输入模式 ...