分析电路图可知三个按键对应的管脚为:KEY1----->PF9 KEY2----->PF7 KEY3----->PF8
本次实验采用延时函数来解决按键按下时的电平抖动问题
功能分析如下
如上图所示
1.需要分析GPIOF章节:设置引脚为输入模式
2.需要分析EXTI章节:检测中断的触发方式
3.需要分析GIC章节:设置GPIOF引脚对应的中断号
代码实现
一、key.h——头文件的包络和功能函数的声明
#ifndef __KEY_H__
#define __KEY_H__
#include "stm32mp1xx_rcc.h"
#include "stm32mp1xx_exti.h"
#include "stm32mp1xx_gic.h"
#include "stm32mp1xx_gpio.h"
//初始化EXTI层——key1
void pf9_exti_init();
//初始化GICD层——key1
void pf9_gicd_init();
//初始化GICC层——key1
void pf9_gicc_init();
//初始化EXTI层——key3
void pf8_exti_init();
//初始化GICD层——key3
void pf8_gicd_init();
//初始化GICC层——key3
void pf8_gicc_init();
//初始化EXTI层——key2
void pf7_exti_init();
//初始化GICD层——key2
void pf7_gicd_init();
//初始化GICC层——key2
void pf7_gicc_init();
#endif
二、key.c——功能函数的声明
以key1为例
1、RCC章节初始化——设置GPIOF组时钟使能
RCC->MP_AHB4ENSETR |= (0x1 << 5);
2、GPIO章节初始化——设置PF9引脚为输入模式
GPIOF->MODER &= (~(0x3 << 18));
3、EXTI章节初始化
1)设置PF9引脚和EXIT9控制器进行连接
EXTI->EXTICR3 &= (~(0xff << 8));
EXTI->EXTICR3 |= (0x5 << 8);