复习

1.STM32的最小系统包括几个部分,分别是什么?

5个,分别是电源、晶振、复位、下载IO、BOOT IO

2.挂载GPIO的总线有几条?分别是什么?

3条,分别是APB1(低速总线)、APB2(高速总线)、AHB系统总线(高速总线)

3.搭建开发环境,与51单片机不同的地方

单片机不需要启动文件,51是直接操作寄存器使用外设,而stm32是直接调用库函数使用外设,详情参考知乎:51单片机和stm32的区别

GPIO简介

一:什么是GPIO

GPIO 是通用输入输出端口的简称,简单来说就是 STM32 可控制的引脚。STM32 芯片 的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。
STM32F103VET6有100个引脚
STM32F103ZET6有144个引脚

二:GPIO和引脚有什么区别?

v2-625970147520c6a26d964aeb17a55b33_r.jpg
不是所有引脚都是 GPIO ,STM32 引脚可以分为这么几大类:

  • 电源引脚:引脚图中的 VDD、VSS、VREF+、VREF-、VSSA、VDDA 等都属于电源引脚。
  • 晶振引脚:引脚图中的 PC14、PC15 和 OSC_IN、OSC_OUT 都属于晶振引脚,不过它们还可以作为普通引脚使用。
  • 复位引脚:引脚图中的 NRST 属于复位引脚,不做其他功能使用。
  • 下载引脚:引脚图中的 PA13、PA14、PA15、PB3 和 PB4 属于 JTAG 或SW 下载引脚。不过它们还可以作为普通引脚或者特殊功能使用,具体的功能可以查看芯片数据手册,里面都会有附加功能说明。当然,STM32 的串口功能引脚也是可以作为下载引脚使用。
  • BOOT 引脚:引脚图中的 BOOT0 和 PB2(BOOT1)属于 BOOT 引脚,PB2 还可以作为普通管脚使用。在 STM32 启动中会有模式选择,其中就是依靠着BOOT0和 BOOT1 的电平来决定。
  • GPIO 引脚:引脚图中的 PA、PB、PC、PD 等均属于 GPIO 引脚。从引脚图可以看出,GPIO 占用了 STM32 芯片大部分的引脚。并且每一个端口都有16个引脚,比如 PA 端口,它有 PA0-PA15。其他的 PB、PC 等端口是一样的。

    三:GPIO功能框图讲解

    image.png

    ①:保护二极管工作原理

    能看见的就是第一部分,实际上是I/O引脚,其它部分都是芯片内部构造
    VDD接电源(3.3V)、VSS接地(0V),当I/O引脚接入为5v时,电流由I/O引脚流向VDD,避免电流进入芯片内部从而实现保护功能。当I/O引脚接入负的时,电流由VSS流向I/O引脚,也避免了让电流进入芯片内部

    ②:P-MOS管和N-MOS 管

    image.png
    推挽输出:输入为1时经过反相器
    开漏输出:

    ③:输出数据寄存器

    输出通过两个寄存器控制来输出,分别是位设置/清除寄存器(BSRR)、输出数据寄存器(ODR)

    ④:复用功能输出

    ⑤:输入数据寄存器

    ⑥:复用功能输出

    ⑦:模拟输入输出

    四:如何查找每一个GPIO的功能说明?