创作本文目的:记录自己的学习历程
一、A7核按键中断
1.代码
.h文件
#ifndef __KEY_H__
#define __KEY_H__
#include "stm32mp1xx_exti.h"
#include "stm32mp1xx_gic.h"
#include "stm32mp1xx_rcc.h"
#include "stm32mp1xx_gpio.h"
//总初始化
void init();
//key1初始化
void pf9_init();
//key2初始化
void pf7_init();
//key3初始化
void pf8_init();
#endif
.c文件
#include "key.h"
//总初始化
void init()
{
/*RCC章节初始化*/
//1.设置GPIOF组时钟使能
RCC->MP_AHB4ENSETR |= (0x1 << 5);
/*GPIO章节初始化*/
//1.设置PF9,PF7,PF8引脚为输入模式
GPIOF->MODER &= (~(0x3 << 18));
GPIOF->MODER &= (~(0x3 << 14));
GPIOF->MODER &= (~(0x3 << 16));
/*EXTI章节初始化*/
//1.1设置PF9引脚和EXTI9控制器进行连接
EXTI->EXTICR3 &= (~(0xff << 8));
EXTI->EXTICR3 |= (0x05 << 8);
//1.2设置PF7引脚和EXTI7控制器进行连接
EXTI->EXTICR2 &= (~(0xff << 24));
EXTI->EXTICR2 |= (0x05 << 24);
//1.3设置PF8引脚和EXTI8控制器进行连接
EXTI->EXTICR3 &= (~(0xff << 0));
EXTI->EXTICR3 |= (0x05 << 0);
//2.设置PF9,PF7,PF8引脚检测方式下降沿
EXTI->FTSR1 |= (0x7 << 7);
//3.设置PF9,PF7,PF9引脚中断不屏蔽
EXTI->C1IMR1 |= (0x7 << 7);
//初始化GICD层
//1.设置GICD层全局中断使能寄存器
GICD->CTRL