用的是STM32F407ZET6。控制的LED灯的四个引脚分别是LED0 ->PF9,LED1 -> PF10,LED2-> PE13,LED3 -> PE14。按键的四个引脚分别是KEY0--> PA0,KEY1--> PE2,KEY2--> PE3,KEY3--> PE4。
在循环里判断按键是否按下(对应的引脚输入会变为0),如果按下,则对应的LED引脚输出低电平,即可点亮。
1,分别初始化LED灯和按键的寄存器。
初始化LED灯(设置各个寄存器):设置GPIO的时钟,配置模式寄存器(通用输出类型),配置输出类型(设为输出推免),设置控制输出速率的寄存器,最后配置输出数据寄存器(让LED灯默认是熄灭的)
初始化按键(设置各个寄存器):设置GPIO的时钟,配置密匙寄存器(设置为输入模式),设置控制输出速率的寄存器。
2,在主函数一直查询按键是否按下(相应的管脚电平是否为0即可)
函数实现如下:
#define rRCCAHB1CLKEN *((volatile unsigned long *)0x40023830)
#define rGPIOF_MODER *((volatile unsigned long *)0x40021400)
#define rGPIOF_OTYPER *((volatile unsigned long *)0x