打印
[应用相关]

STM32 GPIO口的驱动能力

[复制链接]
1259|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
STM32的输入输出模式有多种,可由下面这两个函数来进行设置。

使用特权

评论回复
沙发
大鹏2365|  楼主 | 2021-1-31 23:31 | 只看该作者
##Input/Output Mode## <!-- lang: cpp --> typedef enum { GPIO_Mode_IN = 0x00, /*!< GPIO Input Mode / GPIO_Mode_OUT = 0x01, /!< GPIO Output Mode / GPIO_Mode_AF = 0x02, /!< GPIO Alternate function Mode / GPIO_Mode_AN = 0x03 /!< GPIO Analog Mode */ }GPIOMode_TypeDef;


typedef enum
{
GPIO_OType_PP = 0x00,
GPIO_OType_OD = 0x01
}GPIOOType_TypeDef;

使用特权

评论回复
板凳
大鹏2365|  楼主 | 2021-1-31 23:32 | 只看该作者
其中PP代表推挽输出,OD代表开漏输出。那么它们之间有什么区别呢?

当我想在GPIO上接一个电机或者电磁阀的时候,它们能否直接工作?或者当接数字器件时,又该如何设置?

这就需要考虑到GPIO口的驱动能力,按照需求来设置GPIO口的工作模式。

推挽输出——可以输出高,低电平,连接数字器件

开漏输出——输出端相当于三极管的集电极, 要得到高电平状态需要上拉电阻才行,适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)。

使用特权

评论回复
地板
大鹏2365|  楼主 | 2021-1-31 23:33 | 只看该作者
如图所示,开漏输出应该叫做 反逻辑。当Inside Logic给1,外面输出0V;当给0,外面输出VCC。

使用特权

评论回复
5
大鹏2365|  楼主 | 2021-1-31 23:34 | 只看该作者

使用特权

评论回复
6
大鹏2365|  楼主 | 2021-1-31 23:35 | 只看该作者
刚开始学习一款单片机的时候一般都是从操作IO口开始的,所以我也一样,先是弄个流水灯。

刚开始我对STM32的认识不够,以为是跟51单片机类似,可以直接操作端口,可是LED灯却没反应,于是乎,仔细查看资料发现,原来对于ARM,不管你要操作哪个IO口,都要先配置IO口。

使用特权

评论回复
7
大鹏2365|  楼主 | 2021-1-31 23:36 | 只看该作者
不过对于普通的IO口的应用,配置会比较简单,主要就以下几个步骤:

1.打开相应IO口的时钟;

2.打开IO口相应引脚位;

3.配置IO口的模式;

4.初始化IO端口。

使用特权

评论回复
8
大鹏2365|  楼主 | 2021-1-31 23:36 | 只看该作者
对于STM32的IO口可以根据需要由软件配置成8种模式:

(1)GPIO_Mode_AIN 模拟输入

(2)GPIO_Mode_IN_FLOATING 浮空输入

(3)GPIO_Mode_IPD 下拉输入

(4)GPIO_Mode_IPU 上拉输入

(5)GPIO_Mode_Out_OD 开漏输出

(6)GPIO_Mode_Out_PP 推挽输出

(7)GPIO_Mode_AF_OD 复用开漏输出

(8)GPIO_Mode_AF_PP 复用推挽输出

使用特权

评论回复
9
大鹏2365|  楼主 | 2021-1-31 23:37 | 只看该作者
STM32的IO口灌入电流和输出驱动电流最大是多少?
  最大可以输出8mA,灌入20mA,但要保证所有进入芯片VDD的不能超过150mA,同样所有从VSS流出的电流也不能超过150mA。

芯片手册这些参数都有的啊,一般配置IO的话有三个选项10MA,20MA,50MA,可以看情况配置,往大的配置也没有关系,实际使用是多少就是多少

STM32的IO口灌入电流和输出驱动电流最大是多少?

使用特权

评论回复
10
大鹏2365|  楼主 | 2021-1-31 23:38 | 只看该作者
1,浮空输入的时候,你想输入大电流都难。浮空输入,内阻比较大,你得很高的电压,这样直接超过STM32的上限了。

使用特权

评论回复
11
aoyi| | 2021-2-6 09:46 | 只看该作者
哪种模式的驱动能力最大呢

使用特权

评论回复
12
drer| | 2021-2-6 09:48 | 只看该作者
我最常用的就是开漏输出了

使用特权

评论回复
13
gwsan| | 2021-2-6 09:51 | 只看该作者
在什么情况下 灌电流会导致芯片损坏呢

使用特权

评论回复
14
kxsi| | 2021-2-6 09:55 | 只看该作者
如何防止灌电流的产生呢

使用特权

评论回复
15
nawu| | 2021-2-6 09:59 | 只看该作者
一切都归结为两句简单的函数 非常不错

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

656

帖子

0

粉丝