Stm32的GPIO

对于大容量的144引脚的32芯片,一共有七组IO,分别定义为GPIOA到GPOIG。每组IO有十六位,定义为PA0-PA15,PB0-PB15…

GPIO的八种工作模式:
1.输入浮空在这里插入图片描述
此时上拉与下拉电阻断路,IO口读入真实电平状态。

2.输入上拉
跟上图的唯一区别就是读入的电平状态是接入上拉电阻以后的电平状态,不是直接读IO电平

3.输入下拉
跟上图的唯一区别就是读入的电平状态是接入下拉电阻以后的电平状态,不是直接读IO电平

4.模拟输入
该种方式相当与A/D转换,把IO口输入的电压值转换为数字量。
在这里插入图片描述
5.开漏输出
学过模电跟数电的话,看这个名字应该会比较有感触,这个模式实际上是电流驱动模式,能够容忍较大的电流通过。

在这里插入图片描述
值得注意的是:当写端写入1时,输出控制电路输出1,此时N-MOS管关闭,IO口读出的电平是由外部上拉或下拉电阻决定的,不一定是1。但是当输出控制电路输出0时,N-MOS管导通,被拉到VSS,此时IO输出电平一定为低。

6.开漏复用输出
这个模式跟上面的开漏输出的区别就是该模式的输出电平来自复用端,其余一样
在这里插入图片描述
7.推挽输出
这个模式可以理解为是开漏输出不介入外部上拉或者下拉电阻。
在这里插入图片描述
输出控制电路输出高,则IO输出高,输出控制电路输出低,则IO输出低。

8.推挽复用输出
跟上面的一样,只是此时是复用功能输出
在这里插入图片描述

小结:在这里插入图片描述
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

GPIO相关寄存器
在这里插入图片描述
在这里插入图片描述
1.CRL寄存器

在这里插入图片描述
首先,CRL寄存器是32位的,四位为一组控制一个IO口,一共能控制8个IO口(编号0-7,8-15由CRH控制)。四位里又分为两组:MODE和CNF。MODE配置输入/输出及其速度。CNF配置选择八种模式中的一种。

2.CRH寄存器。见上!!!

3.IDR寄存器
在这里插入图片描述

4.ODR寄存器
在这里插入图片描述
这个寄存器跟CRL,CRH寄存器的上下拉输入模式选择相关:
在这里插入图片描述
5.BSRR寄存器
在这里插入图片描述
这个寄存器的作用就像是RS flip-flop。低十六位控制set(高有效,低保持)。高16位控制reset(高有效,低保持)。跟ODR寄存器作用很相似,但是ODR寄存器的单独一位就可以实现set,跟reset某个IO口的功能。BSRR寄存器通常只使用低十六位,用于在设置ODR寄存器后修改某些IO口的输出电平。其高十六位的功能通常用BRR寄存器代替。

6.BRR寄存器
该寄存器只有清零的作用,没有置一的作用。
在这里插入图片描述
该寄存器只有十六位,图中高16位不用管

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值