EXTI库函数

1.void EXTI_DeInit(void)

功能:将EXTI外设寄存器重置为默注释

注释:RCC_APB2PeriphResetCmd参数中没有EXTI外设的的宏,该外设重置采取的是直接向寄存器赋默认值的操作

例如:EXTI_DeInit();

 

2.void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)

功能:根据EXTI_InitStruct结构体中所配置的参数来初始化EXTI外设

注释:结构体中模式成员设置了被使能线路为事件请求还是中断请求

例如:EXTI_Init(&EXTI_InitStructure);

 

3.void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct)

功能:将EXTI_InitStruct结构体中各成员按默认值填充

注释:只填充了结构体,还没有将参数写入到寄存器中(xxx_Init)

例如:EXTI_StructInit(&EXTI_InitStructure);

 

4.void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line)

功能:产生一个软件中断

注释:如果在EXTI_IMR和EXTI_EMR中允许产生该中断,则此时将产生一个中断

例如:EXTI_GenerateSWInterrupt(EXTI_Line6);

 

5.FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line)

功能:检查指定的外部中断线的标志是否被置位(如果在EXTI_IMR和EXTI_EMR中允许产生该中断,则此时将产生一个中断)

注释:该函数没有检查EXTI_IMR和EXTI_EMR状态,它只是纯粹读取中断标志位的状态,但是不一定会响应中断

            中断发生有两个条件,一是中断标志位置位,二是中断允许

例如:

if(EXTI_GetFlagStatus(EXTI_Line8) == RESET)
{
}
else
{
}

 

6.void EXTI_ClearFlag(uint32_t EXTI_Line)

功能:清除EXTI线路的挂起标志

注释:与EXTI_ClearITPendingBit完全一致

例如:EXTI_ClearFlag(EXTI_Line6);

 

7.ITStatus EXTI_GetITStatus(uint32_t EXTI_Line)

功能:检查指定外部中断线的状态是否有效,检查中断状态,也就是中断是否发生

注释:除了读取中断标志位,还查看 EXT_IMR 寄存器是否对该中断进行屏蔽,在中断挂起 & 没有屏蔽的情况下就会响应中断

例如:

if(EXTI_GetITStatus(EXTI_Line8) == RESET)
{
}
else
{
}

 

8.void EXTI_ClearITPendingBit(uint32_t EXTI_Line)

功能:清除EXTI线路挂起位

注释:与EXTI_ClearFlag完全一致

例如:EXTI_ClearITPendingBit(EXTI_Line6);

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值