登录发现更多内容
首页
分类
发帖
账号
自动登录
找回密码
密码
登录
立即注册
立即登录
立即注册
其他登录
QQ
微信
首页
Portal
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
产品教程
BBS
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
开发资料
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
样品购买
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
IoT云平台
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
GitHub
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
技术博客
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
搜索
搜索
热搜:
LoRa
ESP8266
安信可
本版
帖子
用户
请
登录
后使用快捷导航
没有账号?
立即注册
每日签到
任务
广播
导读
排行榜
设置
我的收藏
退出
9
0
0
首页
小安派&M61基本系统教程
›
【M61笔记】GPIO中断
返回列表
【M61笔记】GPIO中断
[ 复制链接 ]
发布帖子
知行合一
论坛元老
9
主题
406
回帖
5658
积分
论坛元老
论坛元老, 积分 5658, 距离下一级还需 9994341 积分
论坛元老, 积分 5658, 距离下一级还需 9994341 积分
积分
5658
私信
9人留言
楼主
小安派&M61基本系统教程
952
9
2024-6-13 19:20:30
## 中断函数 ### bflb\_gpio\_int\_init **外部中断初始化** **gpio 外部中断初始化** ```c /**bflb_gpio.h * @brief 配置 gpio 引脚中断 * * @param [in] dev 设备句柄 * @param [in] pin gpio pin, use @ref GPIO_PIN * @param [in] trig_mode 触发中断的模式 */ void bflb_gpio_int_init(struct bflb_device_s *dev, uint8_t pin, uint8_t trig_mode); ``` ### bflb\_gpio\_int\_mask **中断屏蔽开关** **gpio 外部中断屏蔽开关** ```c /**bflb_gpio.h * @brief 启用或禁用 gpio 引脚中断 * * @param [in] dev 设备句柄 * @param [in] pin gpio pin, use @ref GPIO_PIN * @param [in] mask 是否屏蔽中断 */ void bflb_gpio_int_mask(struct bflb_device_s *dev, uint8_t pin, bool mask); ``` ### bflb\_gpio\_get\_intstatus **获取 gpio 外部中断是否触发的标志** **获取 gpio 外部中断是否触发的标志** ```c /**bflb_gpio.h * @brief 获取 gpio 引脚中断状态 * * @param [in] dev 设备句柄 * @param [in] pin gpio pin, use @ref GPIO_PIN * @return true 为触发,false 未触发 */ bool bflb_gpio_get_intstatus(struct bflb_device_s *dev, uint8_t pin); ``` ### bflb\_gpio\_int\_clear **清除 gpio 中断标志** **清除 gpio 中断标志** ```c /**bflb_gpio.h * @brief 清除 gpio 引脚中断状态 * * @param [in] dev 设备句柄 * @param [in] pin gpio pin, use @ref GPIO_PIN */ void bflb_gpio_int_clear(struct bflb_device_s *dev, uint8_t pin); ``` ### bflb\_irq\_attach **设置触发中断后进入的回调函数** **设置触发中断后进入的回调函数** ```c /**bflb_irq.h * @brief Attach interrupt with callback. * * @param [in] irq 中断号 * @param [in] isr 中断服务程序 * @param [in] arg 用户数据(user data) * @return 函数调用失败时返回errno的相反数 (A negated errno value on failure) */ int bflb_irq_attach(int irq, irq_callback isr, void *arg); ``` ### bflb\_irq\_enable **中断使能** **中断使能** ```c /**bflb_irq.h * @brief 启用中断 * * @param [in] irq 中断号 */ void bflb_irq_enable(int irq); ``` ### bflb\_irq\_disable 中断失能 ```c /**bflb_irq.h * @brief 关闭中断 * * @param [in] irq 中断号 */ void bflb_irq_disable(int irq); ``` ## 示例 ```c #include "bflb_gpio.h" #include "bflb_mtimer.h" #include "board.h" //设置控制的外设句柄,取名gpio struct bflb_device_s *gpio; //中断服务函数 void gpio_isr(int irq, void *arg) { //检测中断是否发生 bool intstatus = bflb_gpio_get_intstatus(gpio, GPIO_PIN_2); //前面的instatus是bool类型,为true,也就是中断发生 if (intstatus) { //清除中断源,也就是例子里的敲门声 bflb_gpio_int_clear(gpio, GPIO_PIN_2); //输出信息,“吃完了” printf("Finished eating\r\n"); } } int main(void) { board_init(); //给外设句柄复位gpio句柄 gpio = bflb_device_get_by_name("gpio"); printf("gpio interrupt\r\n"); //第三个参数设置为低电平触发 bflb_gpio_int_init(gpio, GPIO_PIN_2, GPIO_INT_TRIG_MODE_SYNC_HIGH_LEVEL); //是否屏蔽中断,设置为false bflb_gpio_int_mask(gpio, GPIO_PIN_2, false); //第二个参数为中断服务函数的函数名 bflb_irq_attach(gpio->irq_num, gpio_isr, gpio); //中断使能 bflb_irq_enable(gpio->irq_num); while (1) { //在常规的while程序中输出“我在敲代码” printf("I am typing the code\r\n"); bflb_mtimer_delay_ms(2000); } } ```
点赞
0
收藏
0
淘帖
0
────
0
人觉得很赞
────
回复
使用道具
举报
9 回复
电梯直达
正序浏览
倒序浏览
正序浏览
沙发
1084504793
回复
使用道具
举报
2024-6-14 08:12:35
赞
回复
评论
使用道具
举报
板凳
WT_0213
回复
使用道具
举报
2024-6-14 08:41:46
回复
评论
使用道具
举报
地板
jkernet
回复
使用道具
举报
2024-6-14 09:45:53
民间文档
回复
评论
使用道具
举报
5
#
爱笑
回复
使用道具
举报
2024-6-14 13:53:53
回复
评论
使用道具
举报
用心做好保姆工作
6
#
iiv
回复
使用道具
举报
2024-6-14 19:03:11
很棒
回复
评论
使用道具
举报
7
#
a1286544151
回复
使用道具
举报
2024-6-15 19:03:46
回复
评论
使用道具
举报
8
#
wurong
回复
使用道具
举报
2024-7-29 11:53:13
厉害了
回复
评论
使用道具
举报
9
#
7788
回复
使用道具
举报
2024-10-6 11:37:17
打卡学习
回复
评论
使用道具
举报
10
#
XiongNeng
回复
使用道具
举报
2025-10-10 06:50:58
打卡学习
回复
评论
使用道具
举报
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
立即登录
手机登录
点评
高级模式
本版积分规则
回帖并转播
回帖后跳转到最后一页
返回
今日推荐
BW20-12F-KIT usbd_inic_dplus问题
基于Ai-WB2的HomeAssistant实现RGB彩灯控制功能
BU04 原理图
基于 Ai-WV01-32S+STM32移植 emMCP 实现 AI 语音控制点灯
AiPi-PalChatV1_“湾湾小何”提示音测试固件V2.9_UART-MCP
[WB2] 实现自动发现局域网下的设备
热帖排行
星闪连接个数
小安派-Eyes-S1 - GPIO中断编程
BW20-12F-KIT usbd_inic_dplus问题
智能环境监测系统可行性猜想
论坛应该出一个发帖时间排序
基于Ai-WB2的HomeAssistant实现RGB彩灯控制功能
BU04 原理图
小安派-Eyes-S1 - UART
统计信息
会员数: 30545 个
话题数: 44705 篇
首页
分类
我的