1.GPIO的工作原理

1.stm32引脚说明:

对于stm32f103zet6:
  1. 一共有7组io口;
  2. 每组io口有16个io;
  3. 一共有16*7=112个io;
  4. 分组情况为:GPIOA,GPIOB~GPIOG;

2.GPIO的基本结构:

1.GPIO的工作原理_第1张图片

3.GPIO的工作模式:

  1. 输入模式:输入浮空、输入上拉、输入下拉、模拟输入;
  2. 输出模式:开漏输出、开漏复用功能、推挽输出、推挽复用功能;
  3. 8种工作模式的详细介绍:
  4. 1.GPIO的工作原理_第2张图片
  5. 3种最大翻转速度:2MHz、10MHz、50MHz;

 4.8种工作模式:

  1. 输入浮空模式:
  2. 1.GPIO的工作原理_第3张图片
  3.  输入上拉模式:
  4. 1.GPIO的工作原理_第4张图片
  5.  输入下拉模式:
  6. 1.GPIO的工作原理_第5张图片
  7. 模拟输入模式:
  8. 1.GPIO的工作原理_第6张图片  
  9.  开漏输出模式:只可以输出强低电平,高电平依靠外部电阻拉高。输出端相当于三极管的集电极,得到高电平状态需要上拉电阻才行。适合于做电流型驱动,其吸收电流的能力相对较强(一般20mA以内)。
  10. 1.GPIO的工作原理_第7张图片
  11. 开漏复用输出模式;
  12. 1.GPIO的工作原理_第8张图片
  13. 推挽输出模式:可以输出强高低电平,连接数字器件;
  14. 1.GPIO的工作原理_第9张图片
  15. 推挽复用输出模式:
  16. 1.GPIO的工作原理_第10张图片

 5.GPIO相关配置寄存器:

每组GPIO端口的寄存器包括:

  1. 两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH);
  2. 两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR);
  3. 一个32位置位/复位寄存器(GPIOx_BSRR);
  4. 一个16位复位寄存器(GPIOx_BRR);
  5. 一个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。

重映射的作用:方便布线。

注意:所以的io口都可以作为中断输入;

你可能感兴趣的:(单片机,stm32,嵌入式硬件)