stm 32 (三)exit 外部中断

EXTI 外部中断

中断的概念

  • 中断 :出现中断条件。
  • 中断优先级:优先响应更紧急的中断源。
  • 中断嵌套:一个中断允许中,又触发更高优先级的中断。

中断包括

EXIT TIM ADC USART SPI通信 I2C通信 RTC定时时钟 等

使用NVIC统一管理中断,每个中断通道都有16个可编程的优先姐进行分组。进一步设置抢占优先级和响应优先级。
由优先级寄存器的4位(0~15)决定,高n位为抢占优先级和低4-n位的响应优先级。

  • 触发响应方式:中断响应/事件响应(不去cpu去外设操作)
  • 相同的pin不能同时触发中断(PA0 PB0 …)

适用

  • 旋转编码器:机器触点/霍尔/光栅

代码

AFIO的 gpio.h

  • GPIO_AFIODeInit(void); 复位AFIO外设,AFIO配置全部清除;
  • GPIO_PinLockConfig(GPIO_TypeDef*GPIOx,uint6_t GPIO_Pin): 锁定GPIO的配置 防止恶意更改
  • GPIO_EventOutputConfig(uint8_t GPIO_PortSource,uint8_t GPIO_PinSource);
    和GPIO_EventOutputCmd(FunctionlState NewState); 配置AFIO的事件输出功能的
  • GPIO-PinRemapConfig(uint32_t GPIO_Remap,FunctionalState NewState); 引脚重映射
  • GPIO_EXTLineConfig(uint8_t GPIO_Portsource,unit8_t GPIO_PinSource); 配置afio的数据选择器,选择想要的中断引脚
  • GPIO_ETH_MediaInterfaceConfig(uin32_t GPIO_ETH_MediaInterface); 配置以太网

EXTI.h

  • void EXTI_DeInit(void); 清除EXTI的配置
  • void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct); 配置EXTI 外设 根据结构体
  • void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct); 把参数传递的结构体赋默认值
  • void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line); 软件触发外部中断

// 状态标志位查看

主程序里查看
  • FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line);获取指定的标志位 是否被置1
  • void EXTI_ClearFlag(uint32_t EXTI_Line);对置1 的标志位 清0
中断程序中查看
  • ITStatus EXTI_GetITStatus(uint32_t EXTI_Line); 获取中断标志位是否被置1
  • void EXTI_ClearITPendingBit(uint32_t EXTI_Line);清除中断挂起位

NVIC

void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup); 中断分组
void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);根据结构体 ,初始化NVIC
void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset); 设置中断向量表,
void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState);系统低功耗配置
void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource);

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值