初学STM32(对于GPIO结构的基本理解)

GPIO(General Purose Input Outout)通用输出输入端口

端口电压3.3v    个别端口容忍5v

在stm32中所有的GPIO都是挂载在APB2外设总线上的,GPIO是以GPIOA....C等等来命名,每个GPIO外设有 16个引脚如GPIOA是从PA0---PA15,GPIO模块只要包括 寄存器和驱动器(寄存器只负责存储数据,如果要电灯就需要驱动器来增加驱动能力),内核可以通过APB2总线对GPIO模块内的寄存器进行读写,寄存器的每一位对应一个引脚。

stm32 是32位的 但是对外只有16个引脚,因此高16位没有应用。

GPIO的8种输入模式

浮空输入 :可读取引脚电平 若引脚悬空,则输入电平不稳

上拉输入 :内部连接上拉电阻,悬空时默认高电平

下拉输入:内部连接下拉电阻 悬空是默认低电平

模拟输入 GPIO无效,引脚直接接入ADC

开漏输出: P-MOS断开,NMOS打开 若输出数据寄存器输出低电平时有效,IO端口为低电平, 

                若是为高电平则NMOS断开 此时IO口若接一个5v的上拉电阻则可以实现输出为5V的电压

推挽输出:P-MOS,N-MOS全都打开 输出数据寄存器输出的电平则为Io口的电平

复用开漏输出:外设控制

复用推挽输出: 外设控制

写入

位设置清除寄存器——>输出数据寄存器——>输出控制——>PMOS/NMOS——>IO

位设置寄存器是对输出数据寄存器的某一位进行设置或者清除

在输入模式下 输出都是无效的,在输出模式下 输入都是有效的 (除了模拟输入情况下 其他7种情况输入都是有效的)

端口配置低寄存器(GPIOx_CRL)(x=A.....E)

CNFy(y=1...7)

MODEy(y=1...7)

占4个字节

端口配置高寄存器(GPIOx_CRH)(x=A.......E)

CNFy(y=8...15)

MODEy(y=8...15)

占4个字节

端口输入数据寄存器(GPIOx_IDR)(x=A...E)

位31:16 保留 始终读为0

位15:0 IDRy 端口输入数据(y=0....15)这些位为只读并只能以字16的形式读出。读出的值对应I/O口的状态。

端口输出数据寄存器(GPIOx_ODR)(x=A...E)

15:0这些位可读可写并只能以16位的形式操作,对于GPIOx_BSRR可分别对ODR位进行设置、清楚

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值