本节主内容是利用按键来控制LED的状态这里要学习按键模块涉及到设置按键驱动、LED驱动。首先是LED驱动模块这里是借助Hardware文件夹下创建LED.c与.h文件其中.c文件主要是写LED初始化函数、驱动函数包括LED亮、灭与状态取反三类函数。1.LED初始化函数LED所连接到的外设时钟使能语句外设配置包括模式、所接引脚、速度这里由于是选择推挽输出模式注意这里是输出而非输入因为LED无法给寄存器写入数据而是要靠寄存器输出状态从而驱动外设这里推挽输出默认上电后是显示低电平所以初始化里面要给高电平保证初始化之后不亮。2.LED驱动函数LED亮与灭主要语句就是借助GPIO_SetBits()或者GPIO_RESetBits()直接控制高低电平即可而LED状态取反函数这里主要是借助gpio.h文件里包含的写操作的后两个函数GPIO_ReadOutputDataBit这里是借助输出该引脚的数据取反具体代码如下。主要是学这个函数的使用。部分代码如下其次是按键模块这里是第一次接触按键由于按键是外部调整其状态来给寄存器写入数据所以这里要用到输入模式这里选择上拉输入模式是由于当按键按下时低电平有效默认是高电平记住这样设置即可GPIO_Mode_IPU表示上拉输入模式按键模块.c文件也是初始化操作内容基本上一样。接着就是获取按键返回的键码数值从而根据该数值可以判断按键是否按下按下的话在主函数里该执行什么语句所以是层层关联按照逻辑执行。获取键码数值函数一定要有返回值函数这里选择uint8_t类型最后return 变量名即可。部分代码如下综上这里主要就是学习模块化编程建立LED.c与LED.h文件然后在.c文件中编写初始化函数、驱动函数而后在.h文件中引用这些函数在主函数中头文件中写上该.h文件这样的话就可以在主函数中使用这些.c的所有函数相当于是建立联系不用全部都写在主函数中。其中按键模块要利用检测按键是否按下、延时消除按下抖动、判断按下是否还在进行循环、再延时为了消除松开的抖动。