STM32F1XX GPIO模式

1. STM32F103上电默认GPIO模式为浮空输入模式:GPIO_MODE_INPUT

GPIOx_CRL GPIOx_CRH 寄存器的 CNF[1:0]位设置为 01, 并且 MODE[1:0]
位设置为 00 时,对应引脚被设置为浮空输入模式。

2. 输入上拉模式:输入上拉模式就是在浮空输入模式基础上使能输入电路中的上拉开关,该开
关由输出数据寄存器(GPIOx_ODR)引脚对应位设置为 1 来使能。

3. 输入下拉模式: 输入下拉模式也是在浮空输入模式基础上使能了输入电路中的下拉开关,该
开关由输出数据寄存器(GPIOx_ODR)引脚对应位设置为 0 来使能。

4. 模拟输入(AD用)GPIO_MODE_AF_INPUT

5.开漏通用输出:GPIO_MODE_OUTPUT_OD 通用输出模式就是做为普通用途的输出模式,比如简单地控制引脚输出高低
电平。 GPIO 的输出是由一个 PMOS 管和一个 NMOS 管组合形成的反相器驱动。
开漏电路概念中的“漏”是指 MOS 管的漏极(D),实际只是利用到 NMOS 管, PMOS
管在开漏模式下是没有用到的

STM32 实际流程: CPU 把端口位设置
/清除寄存器(GPIOx_BSRR)引脚对应外设置为 1,然后驱动端口输出数据寄存器
(GPIOx_ODR)对应位为 1, 实际上也可以让 CPU 直接望 GPIOx_ODR 寄存器引脚对
应位写入 1。 GPIOx_ODR 寄存器通过一个选择电路(与复用功能输出做选择)后输
入到输出控制电路, 经过输出控制电路后在 NMOS 控制线输出低电平,这时
NMOS 管截止(PMOS 管不被激活),引脚呈高阻状态,
不会有电流流动。
 

6. 推挽输出GPIO_MODE_OUTPUT_PP 推挽输出与开漏输出原理理解都是差不多的, 不同的重点在于输出控制电路
驱动反相器的不同,就是推挽输出把 PMOS 管和 NMOS 管都用上了

 

需要控制 I/O 引脚推挽模式输出 1。此时数据输出寄存器(GPIOx_ODR)输出 1,该信号输入到输出控制电路, 之后输出控制电路在 PMOS 控制线输出低电平, 此时 PMOS 管导通,同时在 NMOS 控制器输出低电平,此时 NMOS 管截止, 最终I/O 引脚呈高电平状态, 如果构成回路可以有电流从引脚流出。

7. 推挽复用功能输出模式GPIO_MODE_AF_PP

之前都有讲到,一个 I/O 引脚可以做为普通的 IO 接口,还可以做为其他外
设的特殊功能引脚,有些引脚可能有 4、 5 种不同功能,这种现象就叫做复用。
引脚复用为特殊功能引脚,那引脚状态就由该外设决定

8.  开漏复用功能输出模式 GPIO_MODE_AF_OD

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值