key.h:
#ifndef __KEY_H_
#define __KEY_H_
#include "stm32mp1xx_rcc.h"
#include "stm32mp1xx_gpio.h"
#include "stm32mp1xx_exti.h"
#include "stm32mp1xx_gic.h"
//KEY1-->PF9
//RCC/GPIO/EXTI章节初始化
void hal_exti_pf9_init();
//GIC章节初始化
void hal_gic_pf9_init();
#endif
key.c:
#include "key.h"
//RCC/GPIO/EXTI章节初始化
void hal_exti_pf9_init()
{
//RCC章节初始化
//1.使能GPIOF组控制器 MP_AHB4ENSETR[5] = 1
RCC->MP_AHB4ENSETR |= (0x1 << 5);
//GPIO章节初始化
//1.设置KEY1按键为输入模式 MODER[19:18] = 00
GPIOF->MODER &= (~(0x3 << 18));
//EXTI章节初始化
//1.设置PF9引脚与EXTI9进行连接EXTICR3[15:8] = 0x05
EXTI->EXTICR3 &= (~(0xff << 8));
EXTI->EXTICR3 |= (0x05 << 8);
//2.设置KEY1按键为下降沿触发方式 FTSR1[9] = 1
EXTI->FTSR1 |= (0x1 << 9);
//3.设置EXTI9中断不屏蔽 C1IMR1[9] = 1
EXTI->C1IMR1 |= (0x1 << 9);
}
//GIC章节初始化
void hal_gic_pf9_init()
{
//GICD章节初始化
//1