打印
[STM32L0]

诡异的GPIO上拉电压不足问题,求解!

[复制链接]
4433|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yyyggg|  楼主 | 2017-1-23 18:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyyggg 于 2017-1-23 18:24 编辑

本人用STM32L073的Nucleo板子,现在用GPIOC的0~7的管脚输出,控制MOS管。
管脚模式设置为OD,内部上下拉关闭,每个管脚都外部接4.2V上拉的1K电阻,结果发现其他管脚都输出正常有4.2V左右,而GPIO0这个管脚输出只有2.3V左右,我把其他外部接线跟GPIO0的接线互换,GPIO0管脚上的接线还是会同样的出现电压只有2V多的问题,因而排除了外部接线的问题,我怀疑问题可能出在代码或者板子内部,但0~7的管脚输出代码设置是统一设置的,而我搜索了一下整个工程代码,其他地方也没有用到GPIO0这个管脚的,我就奇怪了,到底是咋回事呢?哪位大神知道,请赐教!
  GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_OD;
  GPIO_InitStruct.Pull  = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;

  GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
沙发
feelhyq| | 2017-1-23 19:12 | 只看该作者
管脚模式OD 为open-drain,即开漏,还有一个OC,开集电极。如图,很明显如果设置成开漏模式或者开集电极模式,无法输出高电平(该电平处于不确定状态),因此需要外接上拉电阻将其拉至确定电平。  通常管脚配置成OD开漏用于管脚之间进行半双工通信,也就是,发完数据后再接收数据。在这种场景下就是用OD

QQ截图20170123190812.png (34.48 KB )

QQ截图20170123190812.png

使用特权

评论回复
板凳
yyyggg|  楼主 | 2017-1-23 19:48 | 只看该作者
feelhyq 发表于 2017-1-23 19:12
管脚模式OD 为open-drain,即开漏,还有一个OC,开集电极。如图,很明显如果设置成开漏模式或者开集电极模式 ...

OD,OC的原理我懂啊,管脚我只是做开关用,不用做通信。虽然没有解决我实际问题,仍然谢谢你热心答复。

使用特权

评论回复
地板
feelhyq| | 2017-1-23 19:59 | 只看该作者
yyyggg 发表于 2017-1-23 19:48
OD,OC的原理我懂啊,管脚我只是做开关用,不用做通信。虽然没有解决我实际问题,仍然谢谢你热心答复。 ...

你设置成普通输出,不就行了吗?

使用特权

评论回复
5
yyyggg|  楼主 | 2017-1-23 20:50 | 只看该作者
feelhyq 发表于 2017-1-23 19:59
你设置成普通输出,不就行了吗?

普通推挽模式输出,电压只有3.3V,不够,需要4~5V的电压驱动,所以我才设置成OD,外加上拉电阻的。

使用特权

评论回复
6
戈卫东| | 2017-1-23 20:53 | 只看该作者
坏了。

使用特权

评论回复
7
wforest68| | 2017-1-23 22:32 | 只看该作者
没去看手册,请问STM32L073的管脚能承受3.6V以上的电压吗?若是不能兼容5V电压,很容易烧毁管脚的

使用特权

评论回复
8
yyyggg|  楼主 | 2017-1-24 00:24 | 只看该作者
wforest68 发表于 2017-1-23 22:32
没去看手册,请问STM32L073的管脚能承受3.6V以上的电压吗?若是不能兼容5V电压,很容易烧毁管脚的 ...

第一,我是输出,不是输入。
第二,我看了手册,带FT的管脚可以承受5V电压,PC0管脚是FT管脚。

使用特权

评论回复
9
dandantcb| | 2017-1-24 12:49 | 只看该作者
先断掉引脚后面的负载,确定是否芯片本身的问题

使用特权

评论回复
10
Yan.hong.yu| | 2017-1-24 14:12 | 只看该作者
芯片内部对管脚用二极管钳位了吧

使用特权

评论回复
11
xmshao| | 2017-1-25 10:12 | 只看该作者
从软件配置上讲PC0-7是一样的,也是FT脚。

建议重点检查下硬件线路,包括芯片本身。

使用特权

评论回复
12
Varus| | 2017-1-26 09:46 | 只看该作者
芯片有没有坏掉?

使用特权

评论回复
13
643757107| | 2017-1-26 12:03 | 只看该作者
外挂的问题?一般这个不会出这个问题,除非你内部不小心烧了

使用特权

评论回复
14
643757107| | 2017-1-26 12:04 | 只看该作者
而且IO内部搞烧了这种事情还是可以发生的。

使用特权

评论回复
15
sdlls| | 2017-1-26 21:58 | 只看该作者
GPIO驱动不足就用上拉电阻

使用特权

评论回复
16
sdlls| | 2017-1-26 21:59 | 只看该作者
10k电阻就能解决的问题。

使用特权

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

本版积分规则

2

主题

9

帖子

0

粉丝