STM32学习笔记 & 外部中断/事件控制器EXTI 05

简介

对于互联型产品,外部中断/事件控制器由20个产生事件/中断请求的边沿检测器组成,对于其它产品,则有19个能产生事件/中断请求的边沿检测器

每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)

每个输入线都可以独立地被屏蔽

挂起寄存器保持着状态线的中断请求

外部中断/事件控制器框图

功能说明

要产生中断,必须先配置好并使能中断线。根据需要的边沿检测设置2个触发寄存器,同时在中断屏蔽寄存器的相应位写’1’允许中断请求。

当外部中断线上发生了期待的边沿时,将产生一个中断请求,对应的挂起位也随之被置’1’。在挂起寄存器的对应位写’1’,将清除该中断请求。

如果需要产生事件,必须先配置好并使能事件线。根据需要的边沿检测通过设置2个触发寄存器,同时在事件屏蔽寄存器的相应位写’1’允许事件请求。

当事件线上发生了需要的边沿时,将产生一个事件请求脉冲,对应的挂起位不被置’1’

通过在软件中断/事件寄存器写’1’,也可以通过软件产生中断/事件请求。

外部中断通用I/O映像

 另外四个EXTI线的连接方式如下:

EXTI线16连接到PVD输出

EXTI线17连接到RTC闹钟事件

EXTI线18连接到USB唤醒事件

EXTI线19连接到以太网唤醒事件(只适用于互联型产品)

外部中断/事件控制器EXTI常用HAL库LIST

stm32f1xx_hal_exti.c

//配置外部中断及事件线
HAL_StatusTypeDef HAL_EXTI_SetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig);
//查询外部中断及事件配置
HAL_StatusTypeDef HAL_EXTI_GetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig);
//清除外部中断及事件线配置
HAL_StatusTypeDef HAL_EXTI_ClearConfigLine(EXTI_HandleTypeDef *hexti);
//注册回调函数
HAL_StatusTypeDef HAL_EXTI_RegisterCallback(EXTI_HandleTypeDef *hexti, EXTI_CallbackIDTypeDef CallbackID, void (*pPendingCbfn)(void));
//EXTI中断服务函数
void HAL_EXTI_IRQHandler(EXTI_HandleTypeDef *hexti);
//产生软件外部中断及事件
void HAL_EXTI_GenerateSWI(EXTI_HandleTypeDef *hexti);

Note :HAL库配置外部中断事件在GPIO初始化中即可完成配置

不需在 stm32f1xx_hal_exti.c 文件夹中调用专属API函数来进行配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值