STM32F429IGT6引脚分类:

电源:(VBAT)、(VDD  VSS(0V))、(VDDA  VSSA)、(VREF+  VREF-)等(用S表示)
晶振IO:主晶振IO、RTC晶振IO
下载IO:用于JTAG下载的IO:JTMS、JTCK、JTDI、JTDO、NJTRST(仿真器下载)
BOOT IO:BOOT0、BOOT1、用于设置系统的启动方式(用B表示)
复位IO:NRST,用于外部复位(用RST表示)
(由上面五类IO组成的系统,我们叫最小系统)

GPIO分类:
专用IO:I2C、SPI(串行flash)、SDIO(SD卡、SD口WIFI)、FSMC、DCMI这些专业总线器件
(专业总线器件需要连接专用IO)

  普通元件IO:只要输出0和1,就能控制。如:LED,蜂鸣器等元器件

  备用IO:可根据需求
 (用I/O表示)

FT:5V容忍IO
TTa:3.3V容忍IO,连接ADC(模数转化)
GPIO默认是普通IO,要想复用其他功能,就得自行配置;

注意:GPIOI只有0-11端口,只有12个引脚

保护二极管:容忍5V,保护芯片(VDD_FT VSS)
上下拉电阻:GPIO默认是浮空状态(1.5V 不稳定)(除了pA15上拉、pA14下拉、pA13上拉、pB4上拉)

输出端:

推挽输出原理:输入高电平,经过仿真器变成0(如果有仿真器),P-MOS导通(一端是VDD, 
          一端是0),N-MOS关闭(两端是0),输出高电平,灌电流,(推)

          输入低电平,经过仿真器变成1(如果有仿真器),P-MOS关闭(两端都是VDD),      
          N-MOS导通(一端端是1,一端是接地),输出低电平,拉电流,(挽)

推挽输出:由两个P-MOS和N-MOS同时控制;
          高电平------------=>高电平
          低电平------------=>低电平

开漏输出原理:输入低电平,经过仿真器变成1(如果有仿真器),N-MOS导通(一端是1,一
          端接地),输出低电平
          输入高电平,经果仿真器变成0(如果有仿真器),N-MOS(两端都是0),不输
          出高电平,也不输出低电平 

开漏输出:只有N-MOS工作;
          高电平------------=>高阻态(外加上拉电阻(输出高低电平,由上拉电阻决定))
          低电平------------=>低电平

输入端:

TTL施密特触发器:确保输入只是1或0,高于某电平的输入的是1,低于某电平的输入的是0;

普通GPIO输入寄存器:

GPIO端口输入寄存器:(GPIOx_IDR)(x=A-I)
                        只使用低16位

                        0:输入是低电平
                        1:输出是高电平

GPIO端口输出速度寄存器:(GPIOx_OSPEEDR)(x=A-I)(32位)
                        00:2MHz(低速)
                        01:25MHz(中速)
                        10:50MHz(高速)(一般)
                        11:电容30pF时为100MHz(15pF时为80MHz输出(最大速度))

复用功能:控制GPIO使用其他功能;
模拟输入:ADC