stm32IO输入模式笔记

在这里插入图片描述
1.模拟输入

我认为模拟输入最重要的一点就是。他不经过输入数据寄存器,所以我们无法通过读取输入数据寄存器来获取模拟输入的值,我认为这一点也是非常好理解的,由于输入数据寄存器中存放的不是0就是1。而模拟输入信号不符合这一要求,所以自然不能放进输入数据寄存器。该输入模式,使我们能够获得外部的模拟信号。
2.浮空输入

该输入状态。我的理解是。它的输入全然由外部决定,我认为在数据通信中应该能够使用该模式。应为在数据通信中。我们直观的理解就是线路两端连接着发送端和接收断。他们都须要准确获取对方的信号电平,不须要外界的干预。
所以我认为这样的情况适合浮空输入。比方我们熟悉的I2C通信。

3上拉输入

上拉输入就是在输入电路上使用了上拉电阻。这样的模式的优点在于我们什么都不输入时,由于内部上拉电阻的原因,我们的处理器会认为我们输入了高电平。这就避免了不确定的输入。
这在要求输入电平仅仅要高低两种电平的情况下是非常实用的。

4下拉输入
和上拉输入相似,只是下拉输入时,在外部没有输入时,我们的处理器会认为我们输入了低电平。
5开漏输出

开漏输出,输出端相当于三极管的集电极。所以适合与做电流驱动的应用。要得到高电平。须要上拉电阻才干够。
6推挽输出

推挽输出使用了推挽电路,结合推挽电路的特性。它是由两个MOSFET组成,一个导通的同一时候,另外一个截至,两个MOSFET分别连接高低电平,所以哪一个导通就会输出相应的电平。推挽电路速度快,输出能力强,直接输出高电平或者低电平。
能够输出高,低电平,连接数字器件; 推挽结构通常是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候还有一个截止。

7复用开漏和复用推挽

我们知道这仅仅是对GPIO的复用而已。
使普通的GPIO具有了别的功能。

作者:旺仔喝牛奶66
来源:CSDN
原文:https://blog.csdn.net/zdw6868/article/details/80595301
版权声明:本文为博主原创文章,转载请附上博文链接!

在操作DS18B20时,需要用到IO口的方向设置。经过自己研究现总结如下,供大家分享。如有问题,请指正交流。
1 例子
/IO方向设置/
#define DS18B20_IO_IN() {GPIOE->CRH&=0XFFFFFFF0;GPIOE->CRH|=8<<0;}
#define DS18B20_IO_OUT() {GPIOE->CRH&=0XFFFFFFF0;GPIOE->CRH|=3<<0;}

/IO操作函数/
#define DS18B20_DQ_OUT PEout(8)
#define DS18B20_DQ_IN PEin(8)
2 分析
GPIOE->CRH&=0XFFFFFFF0;GPIOC->CRH|=8<<0
先抛开设置完是什么意思,说一下这样设置,是做了什么
GPIOE->CRH&=0XFFFFFFF0;将GPIOE->CRH寄存器的低四位置为0,其他位上的数值不变
GPIOC->CRH|=8<<0;将1000右移0位
3 说明
每个IO口都有两个寄存器CRH和CRL来设置IO方向,其中CRH用来设置高8-15引脚,CRL用来设置0-7引脚
每个引脚的设置需要四位,拿最0引脚的设置来说明。
1:0位用来配置端口模式:
00:输入模式(复位后的状态)
01:输出模式,最大速度10MHz
10:输出模式,最大速度20MHz
11:输出模式,最大速度50MHz
3:2为用来进一步设置端口
输入模式:
00:模拟输入
01:浮空输入(复位后的状态)
10:上拉/下拉输入模式
11:保留
输出模式:
00:通用推挽输出
01:通用开漏输出
10:复用功能推挽输出
11:复用功能开漏输出

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值