目录
第一节 GPIO硬件介绍
第二节 GPIO软件介绍
第三节 实验
官网地址:http://www.fengke.club
购买链接:http://shop115904315.taobao.com/
官方QQ群:193836402
STM32F407的GPIO的功能较多,可以灵活配置。每个I/O口都可以作为输出输出口使用之外,还能作为复用引脚使用,比如串口、I2C、SPI等特殊接口的引脚。但是需要注意的是每个引脚的复用功能是有限制的,比如PF0引脚的复用功能只有I2C2_SDA和FSMC_A0,所以硬件连接时需要注意每个引脚有哪些复用功能,这个可以在STM32F407的数据手册中查看。
GPIO口一共有8种模式,分别为:浮空输入,上拉输入,下拉输入,模拟输入,开漏输出,推挽输出,推挽式复用功能,开漏式复用功能。这8种功能我们就不一一介绍了,有兴趣可以上网搜索了解一下。我们主要介绍一下本章节使用到的输出模式:
输出端相当于三极管的集电极. 需要上拉电阻才能得到高电平,利用外部上拉电阻的驱动能力,减少IC内部的驱动,驱动能力强,适合于做电流型的驱动,可达到20mA。
可以输出高,低电平,连接数字器件,是由两个参数相同的三极管或MOSFET以推挽方式连接,各负责正负半周的波形放大任务。电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高,既提高电路的负载能力,又提高开关速度。
STM32F407的每组GPIO端口有10个32位寄存器,分别为:
MODER:模式控制寄存器,用于选择GPIO的工作模式,一共有四种模式,分别为输入模式、输出模式、复用功能模式、模拟模式。寄存器各位的描述如下图所示:
OTYPER:输出类型寄存器,用于选择GPIO的输出类型,分别为推挽输出、开漏输出。寄存器各位的描述如下图所示:
OSPEEDR:输出速度寄存器,用于选择GPIO的输出速度,分别为:低速、中速、快速、高速。寄存器各位的描述如下图所示:
PUPDR:上拉/下拉寄存器,寄存器各位的描述如下图所示:
端口每位的配置表格如下图所示:
IDR:输入数据寄存器,用于读取GPIO的输入数据,为只读寄存器,各位的描述如下图所示:
ODR:输出数据寄存器,用于控制GPIO的输出数据,为读写寄存器,各位的描述如下图所示:
BSRR:置位/复位寄存器,用于置位或者复位GPIO口的输出状态,功能与ODR寄存器类似。高16位为复位(输出0),低16位为置位(输出1)。该寄存器为写寄存器,写入1有效,写入0无效,方便对端口进行位操作。寄存器各位的描述如下图所示:
LCKR:配置锁定寄存器,用于锁定对应引脚的配置,一旦锁定有效,就不能改变,只有通过复位MCU来改变。寄存器各位的描述如下图所示:
AFRH:高位复用功能选择寄存器,用于选择引脚分组中的高8位引脚的复用功能。寄存器各位的描述如下图所示:
AFRL:低位复用功能选择寄存器,用于选择引脚分组中的低8位引脚的复用功能。寄存器各位的描述如下图所示:
GPIO实验通过LED来实现流水灯的现象,LED与MCU硬件连接的电路图如下图所示:
两个LED分别与PC1与PC4引脚相连,那么我们就对PC1与PC4引脚进行配置,配置代码(通过调用官方库)如下图所示:
详细的代码可以参考我们提供的例程代码。
开发接口连接可以参考《开发接口连接教程》,路径为:..\WT_Mobile\0.从这里开始\2.快速上手。
开发板供电可以参考《如何上电》教程,路径为:..\WT_Mobile\0.从这里开始\0.开机测试。
下面打开GPIO实验工程文件GPIO流水灯.uvproj,路径为:..\WT_Mobile\1.初级教程\STM32F407\1_GPIO\GPIO流水灯\user,如下图所示:
打开代码后先点击编译按钮,编译完成没有错误之后直接点击Load按钮下载代码,如果需要调试,单步运行代码就点击DEBUG按钮,如下图所示:
完成第三节的操作之后,就会看到板子上的流水灯现象。如果按Load按钮下载没有现象就按一下板子上的复位按键。如果点击的DEBUG按钮就需要点击全速运行。