STM32学习笔记-GPIO输入输出-03

1.

GPIO表示的时通用输入输出口,有8种输入输出模式,引脚电平为0-3.3V,部分引脚可以容忍5V。

输出模式下可以控制端口输出高低电平,用来驱动LED,控制蜂鸣器,模拟通信协议输出时序等。

输入模式下可读取端口的高低电平或电压,用来读取按键输入(最常见),外界模块的电平信号输入,ADC电压采集,模拟通信协议接收数据等。

2.GPIO基本结构

图解:左边为APB2外设总线

内核通过APB2对寄存器进行读写,达到读取和输出电平的功能

寄存器的每位对应一个引脚

3.GPIO位结构

右边vdd接3.3v,vss接0v,确保电压在0-3.3v

4.输出部分:

上方vdd和vss调整上拉输入(高电平输入)或者下拉输入(低电平输入)

施密特触发器将输入电压整形,变成方波

然后写入输入数据寄存器,用来读数

5.输入部分:

写入通过片上外设或者输出数据寄存器,输出数据寄存器只能整体读写,具体某一位的控制通过位设置/清除寄存器来实现,例如                                                                                                     

方法1:先读出寄存器,再通过按位与和按位或的方式来更改某一位,然后再将更改后的数据写回去,C语言中就是&=和|=的操作

方法2:通过设置位设置/清除寄存器,在对应的位写1,其他位写0

推挽输出:p-mos和n-mos均有效,数据寄存器为1时,上管导通,下管断开,输出直接接到vdd,就是输出高电平。

开漏输出:p-mos无效,n-mos有效,数据寄存器为1时,下管断开,数据寄存器为0时,下管导通,仅有低电平有驱动能力。可以作为通信的模式,或者输出5V的电平信号

关闭:引脚配置为输入模式,关闭

6.GPIO模式

开漏输出和推挽输出都可以输出有驱动能力的低电平,但只有推挽输出能输出有驱动能力的高电平。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值