本帖最后由 大猫的鱼 于 2025-1-4 13:31 编辑
今天使用Ai-M61-32S-Kit最小系统板做个外部中断实验,发现没有任何效果 即使是直接使用泽哥帖子 (八)零基础开发小安派-Eyes-S1【外设篇】——GPIO中断编程 中的代码,也没有效果,先看一下代码吧:
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include "board.h"
- #include "log.h"
- #include "bflb_gpio.h"
- #include "bflb_mtimer.h"
- #define DBG_TAG "MAIN"
- #define EXIT_GPIO GPIO_PIN_10
- struct bflb_device_s *gpio;
- void ISR_Exit(void);
- void System_Init(void)
- {
- gpio = bflb_device_get_by_name("gpio");
- bflb_gpio_init(gpio,EXIT_GPIO,GPIO_INT_TRIG_MODE_SYNC_RISING_EDGE);
- bflb_irq_attach(gpio->irq_num, ISR_Exit, NULL);
- bflb_gpio_int_mask(gpio, EXIT_GPIO, false);
- bflb_irq_enable(gpio->irq_num);
- }
- void ISR_Exit(void)
- {
- bool intstatus = bflb_gpio_get_intstatus(gpio, EXIT_GPIO);
- if (intstatus)
- {
- bflb_gpio_int_clear(gpio, EXIT_GPIO);
- printf("ok\r\n");
- }
- }
- int main(void)
- {
- board_init();
- System_Init();
- while (1)
- {
- if (bflb_gpio_get_intstatus(gpio, EXIT_GPIO))
- {
- printf("Exit sta = 1\r\n");
- }
- else
- printf("Exit sta = 0\r\n");
-
- bflb_mtimer_delay_ms(500);
- }
- }
复制代码 现象:
一直显示 Exit sta = 1 ,进入bflb_gpio_git_intstatus() 函数中,发现代码是灰色的,整个函数相当于空的,并没有BL616或其他 宏。我看了其他好多文件都有这种型号的宏,所以这个应该在哪里有定义呢?求救
|