这是本文档旧的修订版!
STM32CubeMX教程三——GPIO输入实验
1. 新建工程:在主界面选择File–>New Project 或者直接点击ACCEE TO MCU SELECTOR
2. 出现芯片型号选择,搜索自己芯片的型号,双击型号,或者点击Start Project进入配置
在搜索栏的下面,提供的各 种查找方式,可以选择芯片内核,型号,等等,可以帮助你查找芯片。本实验选取的芯片型号为:STM32F407IGTx。
3. 配置RCC,使用外部时钟源
4. 配置调试引脚
5. 将LED对应的3个引脚(PI5,PI6,PI7)设置为GPIO_Output
6. 将ARM_KEY对应的引脚(PH15)设置为GPIO_Input
7. 引脚模式配置
三色LED引脚配置
ARM_KEY引脚配置
8. 时钟源设置,选择外部高速时钟源,配置为最大主频
9. 工程文件的设置, 这里就是工程的各种配置 我们只用到有限几个,其他的默认即可 IDE我们使用的是 MDK5
10. 点击Code Generator,进行进一步配置
Copy all used libraries into the project folder
将HAL库的所有.C和.H都复制到所建工程中
Copy only the necessary library files
只复制所需要的.C和.H(推荐)
Add necessary library files as reference in the toolchain project configuration file
不复制文件,直接从软件包存放位置导入.C和.H
自行选择方式即可
11. 然后点击GENERATE CODE 创建工程
创建成功,打开工程。
实验三:GPIO输入实验——读取ARM按键状态
一、 实验目的与意义
了解STM32 GPIO结构
了解STM32 GPIO 特征
掌握按键判断(判键)方法
掌握STM32 HAL库中GPIO属性的配置方法
掌握KEILMDK 集成开发环境使用方法
二、 实验设备及平台
iCore3 双核心板
JLINK(或相同功能)仿真器
Micro USB线缆
Keil MDK 开发平台
STM32CubeMX开发平台
装有WIN XP(及更高版本)系统的计算机
三、 实验原理
按键简介:按键是一种机械器件,按键两端分别对应某电路的两个断点,我们可以通过按键接通和断开控制该电路的电压等参数,我们利用按键做的应用通常有控制继电器、键盘、复位等。随着应用的扩展,按键已成为电路板上不可或缺的一部分。
按键主要有以下四种类型:(本次实验使用的是常开带复位按键)。
*常开带复位:初始默认状态是开路,当受力按下时按键使电路连通,受力结束后其自动返回开路状态。
常开带不复位:初始默认状态是开路,每按下一次按键改变一次开闭状态。
常闭带复位:初始默认状态是连通,当受力按下时按键使电路开路,受力结束后其自动返回连通状态。
常闭不带复位:初始默认状态是连通,每按下一次按键改变一次开闭状态。
按键消抖:**使用手动按键的时候, 由于机械抖动可能造成按键的错误识别。一般手动按下按键然后释放, 按键两片金属膜接触的时间大约为50ms,按键松开到稳定的时间为5-10ms。因此,如果在首次检测到按键被按下后延时20ms 左右再次检测,即可确认是否真的有按键被按下,从而消除按键抖动造成的错误识别。本实验通过给于一定延时后再进行检测,从而有效的避免了按键抖动带来的误判。
原理示意图如下图所示。本实验中按键的一端与STM32的GPIO(PH15)相连,另外一端接地,且PH15外接一个1K电流大小的上拉电阻。初始化时把PH15设置成输入模
式,当按键弹起时,PH15由于上拉电阻的作用呈高电平(3.3V);当按键按下时,PH15直接被按键短接到GND,呈低电平。因此判断PH15的电平变化,可得到按键状态。
四、 实验程序
1. 主函数
2. GPIIO初始化
以下是按键的GPIO初始化程序。
五、 实验步骤
把仿真器与iCore3的SWD调试口相连(直接相连或者通过转接器相连);
把iCore3通过Micro USB线与计算机相连,为iCore3供电;
打开Keil MDK 开发环境,并打开本实验工程;
烧写程序到iCore3上;
也可以进入Debug 模式,单步运行或设置断点验证程序逻辑。
六、 实验现象