STM32 GPIO 简介

目录

一、简单了解GPIO

二、GPIO输入模式

三、GPIO输出模式

 四、GPIO配置


一、简单了解GPIO

GPIO(general porpose intput output) 是通用输入输出端口的简称。可以通过软件控制其输出和输入。stm32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通信,控制以及数据采集的功能。

二、GPIO输入模式

GPIO基本结构:

1、浮空输入模式 

输入通路如图所示

 从右端I/O引脚输入,通过TTL肖特基触发器的送入进入到“输入数据寄存器”,之后被CPU读出I/O口电平状态。

2、输入上拉模式

与浮空输入模式相比,输入上拉模式是在通道上端增加一个上拉电阻。根据STM32的数据手册,这个上拉电阻阻值介于30K~50K欧姆。

3、输入下拉模式 

输入上拉模式是在通道下端增加一个下拉电阻。根据STM32的数据手册,这个上拉电阻阻值介于30K~50K欧姆。

4、模拟输入模式 

从I/O口进入,直接进入ADC模块。模拟输入配置下,CPU不能在“输入数据寄存器”上读到有效的数据。

 对于要加上拉或下拉电阻:

当作单片机作为输入时,假设我们直接在IO端口接一个按键到地(或电源)。

因为按键按,于不按管脚都是悬空的。单片机就很难检测按键是否按下。

所以人为的接一个上拉(或下拉)。以确定未按下的时候IO输入电平的状态

三、GPIO输出模式

1、开漏输出_OUT_OD

开漏输出工作原理图: 

 

当CPU 在最左端通过“位设置/ 清除寄存器”或“输出数据寄存器”写入数据后,该数据位将通过输出控制电路传送到右端的I/O端口。

如果CPU 写入的是逻辑“1 ”,则中部的N-MOS管将处于关闭状态,此时I/O 端口的电平将由外部的上拉电阻决定

如果CPU 写入的是逻辑“0 ”,则中部的N-MOS管将处于开启状态,此时I/O端口的电平被的N-MOS管拉到了“地”的零电位

在图中的上半部,TTL触发器处于开启状态,这意味着CPU 可以在“输入数据寄存器”的另一端,随时可以监控I/O端口的状态。通过这个特性,还可以实现了虚拟的I/O端口双向通信:假如CPU 输出逻辑“1 ”,由于的N-MOS管处于关闭状态,I/O 端口的电平将完全由外部电路决定。因此,CPU 可以在“输入数据寄存器”读到外部电路的信号,而不是它自己输出的逻辑“1 ”。

2、推挽输出_OUT_PP

 GPIO的推挽输出模式是在开漏输出模式的基础上,在“输出控制电路”之后,增加了一个P-MOS管当CPU输出逻辑“1 ”时,P-MOS管导通,而下方的N-MOS管截止,达到输出高电平的目的;当CPU输出逻辑“0 ”时,P-MOS管截止,而下方的N-MOS管导通,达到输出低电平的目的。在这个模式下,CPU 仍然可以从“输入数据寄存器”读到该IO端口电压变化的信号。

 3、开漏复用输出_AF_OD

 GPIO的开漏复用输出模式与开漏输出模式的工作原理基本相同,不同的是输入的源不同,它是和复用功能的输出端相连,此时的“输出数据寄存器”被输出通道给断开了。

 4、推挽复用输出_AF_PP

GPIO的推挽复用输出模式与推挽输出模式的工作原理基本相同,“输出控制电路” 输入是与复用功能的输出端相连,此时“输出数据寄存器”被从输出通道断开了,片上外设的输出信号直接与“输出控制电路”的输入端想连接。我们将GPIO配置成复用输出功能后,假如相应的外设模块没有被激活,那么此时IO端口的输出将不确定。

 四、GPIO配置(使用CubeMx)

1、先选择自己的单片机型号

 

这个是选择后的页面,这里选择的是STM32F103C8T6  

 2、要使用stlink,所以Debug选择如图。

3、设置RCC时钟,HSE选择外部晶振

 

 4、时钟树配置 输入HCLK按回车,系统自动配置,这里选择最大频率

 5、选择引脚输入或者输出,这里举PC13,选择其OUT_PUT

 

然后可以配置这个引脚,可以选择输入输出模式,以及上下拉电阻等进行设置

 

 6、项目文件设置

 包括设置项目名称,存储路径(必须是英文路径),选择所用IDE

 

7、生成代码

 

之后可以在main.c中进行代码的书写。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值