一、写在前面:

之前上过嵌入式的课程,也曾用rt1052/64把别人的程序编编改改,但对于单片机的理解仅停留在胎教的阶段。此次利用老师给的stm32f4(探索者)开发板,对单片机进行一个全面的学习。

        该文章为学习笔记,内容主要来自《Cortex M3与M4权威指南》、《STM32F4xx中文参考手册》、《STM32F4开发指南-寄存器版本_V1.2》、《STM32F4开发指南-库函数版本_V1.2》、正点原子的教学视频及网络。环境选择Keil uVision5。

        由于我编程和模电水平确实较差,望大家多批评指正了

二、GPIO基本情况

1.概述
        GPIO(General-purpose input/output),通用型输入输出的简称。既然一个引脚可以用于输入、输出或其他特殊功能,那么一定有寄存器用来选择这些功能。对于输入,一定可以通过读取某个寄存器来确定引脚电位的高低;对于输出,一定可以通过写入某个寄存器来让这个引脚输出高电位或者低电位;而对于其他特殊功能,则有另外的寄存器来控制它们。

2.引脚说明
        ①一共有7组IO口:GPIOA—GPIOG

        ②每组IO口有16个IO:GPIOA_0—GPIOA_15

        ③一共7*16=112个IO

        ④所有IO口都可以作为中断输入

3.GPIO工作

 图1、2  5V容忍I/O端口位的基本结构

(1)4种输入模式
        ①输入浮空(input floating)

               

(1)4种输入模式
        ①输入浮空(input floating)