1.stm32引脚说明:
对于stm32f103zet6:
- 一共有7组io口;
- 每组io口有16个io;
- 一共有16*7=112个io;
- 分组情况为:GPIOA,GPIOB~GPIOG;
2.GPIO的基本结构:
3.GPIO的工作模式:
- 输入模式:输入浮空、输入上拉、输入下拉、模拟输入;
- 输出模式:开漏输出、开漏复用功能、推挽输出、推挽复用功能;
- 8种工作模式的详细介绍:
- 3种最大翻转速度:2MHz、10MHz、50MHz;
4.8种工作模式:
-
输入浮空模式:
-
输入上拉模式:
-
输入下拉模式:
-
模拟输入模式:
-
开漏输出模式:只可以输出强低电平,高电平依靠外部电阻拉高。输出端相当于三极管的集电极,得到高电平状态需要上拉电阻才行。适合于做电流型驱动,其吸收电流的能力相对较强(一般20mA以内)。
-
开漏复用输出模式;
-
推挽输出模式:可以输出强高低电平,连接数字器件;
-
推挽复用输出模式:
5.GPIO相关配置寄存器:
每组GPIO端口的寄存器包括:
- 两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH);
- 两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR);
- 一个32位置位/复位寄存器(GPIOx_BSRR);
- 一个16位复位寄存器(GPIOx_BRR);
- 一个32位锁定寄存器(GPIOx_LCKR)。
- 每个io端口位可以自由编程,然而io端口寄存器必须按32位字被访问(不允许半字或字节访问);
- 每组io口有7个寄存器,一共可以控制一组GPIO的16个口;
- GPIOx_CRL:端口配置低寄存器;
- GPIOx_CRH:端口配置高寄存器;
- GPIOx_IDR:端口输入寄存器;
- GPIOx_ODR:端口输入寄存器;
- GPIOx_BSRR:端口位设置/清除寄存器;
- GPIOx_BRR:端口位清除寄存器;
- GPIOx_LCKR:端口配置锁存寄存器。
6.端口复用功能:
stm32的大部分端口都具有复用功能,复用就是指一些端口不仅可以作为通用io口,还可以复用为一些外设引脚,例如PA9,PA10可以复用为stm32的串口1引脚。
端口复用的作用:最大限度的利用端口资源。
7.端口重映射功能:
就是将某些功能引脚映射到其他引脚,例如串口1默认引脚为PA9,PA10可以通过重映射映射到PB6,PB7。
重映射的作用:方便布线。