//AFIO复位函数,调用此函数AFIO外设的配置就会完全清除
void GPIO_AFIODeInit(void);
//锁定GPIO配置的,调用之后,某个引脚的配置就会被锁定,防止意外更改
void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
//配置AFIO事件输出功能的
void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);
void GPIO_EventOutputCmd(FunctionalState NewState);
//进行引脚重映射,第一个是重映射的方式,第二个参数是新的状态
void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);
//配置APIO需要的数据选择器,选择我们所需要的中断引脚
void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
//和以太网外设有关
void GPIO_ETH_MediaInterfaceConfig(uint32_t GPIO_ETH_MediaInterface);
//调用此函数就可以将exti所有配置清除,恢复到上电默认的状态
void EXTI_DeInit(void);
//可以根据结构体里面的参数配置exti外设
void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);
//把参数传递的结构体变量赋给一个默认值
void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct);
//软件触发外部中断,调用后,参数给一个指定的中断线,就能软件触发一次这个外部中断
void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line);

//四个模板函数,当程序想看标志位时,就可以用到这四个函数
FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line);//获取指定标志位是否被置一
void EXTI_ClearFlag(uint32_t EXTI_Line);//将置一标志位清除
//在中断中查看标志位,和清除标志位
ITStatus EXTI_GetITStatus(uint32_t EXTI_Line);
void EXTI_ClearITPendingBit(uint32_t EXTI_Line);
typedef enum
{
    //上升沿触发
  EXTI_Trigger_Rising = 0x08,
    //下降沿触发
  EXTI_Trigger_Falling = 0x0C,
    //上升沿和下降沿都触发
  EXTI_Trigger_Rising_Falling = 0x10
}EXTITrigger_TypeDef;

 

//函数用于中断分组,参数是中断分组方式
void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);
//根据结构体里面指定参数初始化NVIC
void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);
//设置中断向量表
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);

外部中断信号配置:

GPIO---->AFIO------>EXIT------>NVIO---->CPU(这样才能从主程序跳到中断程序执行)

posted on 2025-08-04 21:50  fafrkvit  阅读(17)  评论(0)    收藏  举报