一.实验目的
掌握STM32固件库的使用方法;掌握基于库函数模板的开发方法;掌握基于固件库进行GPIO端口编程的方法;
4、规范编程格式。
二.实验内容
1.查阅STM32-V5开发板按键、LED灯电路原理图;
2.基于固件库编程监测GPIO端口的输入,进而监测按键状态;
3.基于固件库编程控制GPIO端口的输出,进而控制LED灯的显示状态。
三.实验设备及工具
硬件:PC机,安富莱_STM32-V5开发板,ST-Link V2仿真器
软件:STM32官方库;PC机WINDOWS系统操作系统;KEIL MDK集成开发环境
四.实验步骤
1.查阅安富莱STM32-V5开发板按键、LED灯电路原理图
共有4个可编辑LED灯及3的按键,LED灯高电平电路,按键低电平有效。
2.基于STM32F4固件库编程,监测GPIO端口的输入,进而监测按键状态
1)按键初始化程序:
分别使能相应引脚,并对其进行配置:
2)按键扫描程序编写:
通过读取按键的高低电平状态,判断是否有按键按下。FFFFF,t_70)
程序编写思路:
按键机械触点断开、闭合时,由于触点的弹性作用,按键开关不会马上稳定接通或一下子断开,使用按键时会产生图2.2的带波纹信号,一般延时10ms时间用于消抖,方便输入检测。
3.主函数编写:
LED灯控制函数初始化;
2.按键函数初始化;
3.其他必要函数初始化;
4.编写简单测试程序,检测按键的状态,实现按键控制 LED 灯。
步骤三:基于固件库编程控制GPIO端口的输出,进而控制LED灯的显示状态。
五 运行结果
经过编译后,无错误,可以正常运行。
六.实验中遇到的问题:
1.刚开始用gpio设置输入的时候,构图记忆不清楚,以又查了一下gpio口的构图剖析,跟着网上的教程,进行了gpio的初始化,问题得到解决。
2. 在对按键的状态设置过程中,遇到了一些困难,查了一些资料后,进行了改进,将改进后编译好的程序下载到开发板,并且复位按下按键可以顺利控制LED灯亮灭。