话不多说,先看最终现象。
通过简单了解,成功配置好PIN_0的中断,打印信息。
- #include "bflb_mtimer.h"
- #include "board.h"
- #include "bflb_gpio.h"
- struct bflb_device_s *gpio;
- void gpio_isr(int irq, void *arg)
- {
- if(bflb_gpio_get_intstatus(gpio, GPIO_PIN_0) == 1)
- {
- bflb_gpio_int_clear(gpio, GPIO_PIN_0);
- printf("PIN 0 Interrupt\r\n");
- }
- }
- int main(void)
- {
- board_init();
- gpio = bflb_device_get_by_name("gpio");
- bflb_gpio_int_init(gpio, GPIO_PIN_0, GPIO_INT_TRIG_MODE_SYNC_FALLING_EDGE);
- bflb_gpio_int_mask(gpio, GPIO_PIN_0, false);
- bflb_irq_attach(gpio->irq_num, gpio_isr, gpio);
- bflb_irq_enable(gpio->irq_num);
- while (1) {
- printf("Hello,sily\r\n");
- bflb_mtimer_delay_ms(1000);
- }
- }
复制代码 代码如上。
|