key_in.c:
#include "key_in.h"
void gpio_init()
{
//RCC使能
RCC->MP_AHB4ENSETR |= (0x3<<4);
//PE10、PF10、PE8输出模式
GPIOE->MODER &= ~(0x3<<20);
GPIOE->MODER |= (0x1<<20);
GPIOF->MODER &= ~(0x3<<20);
GPIOF->MODER |= (0x1<<20);
GPIOE->MODER &= ~(0x3<<16);
GPIOE->MODER |= (0x1<<16);
//推挽模式
GPIOE->OTYPER &= ~(0x1<<10);
GPIOF->OTYPER &= ~(0x1<<10);
GPIOE->OTYPER &= ~(0x1<<8);
//速度设置为低速
GPIOE->OSPEEDR &= ~(0x3<<20);
GPIOF->OSPEEDR &= ~(0x3<<20);
GPIOE->OSPEEDR &= ~(0x3<<16);
//设置为无上拉下拉电阻
GPIOE->PUPDR &= ~(0x3<<20);
GPIOF->PUPDR &= ~(0x3<<20);
GPIOE->PUPDR &= ~(0x3<<16);
}
void key_in_config()
{
//RCC使能GPIOF时钟
RCC->MP_AHB4ENSETR |= (0x1<<5);
//设置PF9 PF7 PF8管脚为输入模式
GPIOF->MODER &= ~(0x3f<<14);
//设置PF9 PF7 PF8发生EXTI事件
EXTI->EXTICR3 &=