打印
[应用相关]

STM32F4系列 PA1管脚 始终带3.3V电压

[复制链接]
2284|35
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2024-5-31 09:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
hi各位好,

我最近正在用一款量产的成品PCB板做项目,芯片型号是STM32F429BIT6。其中PA1管脚被用作ADC1 IN1,用于接入传感器(PCB已经量产,而且线束已经做好,所以一般来说没法改了,而且估计已经在使用了)。

但是我发现一个奇怪的现象,配置完ADC以后,这个管脚的读数一开始就是4092这样的数值。但也不是说ADC不好用,因为这个数字是变化的,有时候是4089,有时候是4091,会变化的。用这个管脚量什么都是4092,但是如果接GND数值是正确的,差不多只有个位数。

我排查了一圈发现了问题,但是我不知道是什么导致的。用万用表量了一下这个管脚,它自身是带3.3v正电的,即使代码中它被配为 GPIO_MODE_ANALOG 也是如此,修改 GPIO_InitStruct.Pull 为上拉或者下拉都不管用。

一开始我以为是我代码配置的问题,因为我是基于别人的代码修改的,但是我用CubeMX新建一个空白工程再配置PA1这个管脚,只读出ADC值不添加额外的代码,还是同样的问题,HAL库和LL库都是如此,管脚始终带正电。

由于怀疑的硬件电路问题,我又换了一块PCB板子,型号是F429VET6,这块板子是网上买的,什么都没接的那种。也用CubeMX新建工程,如法**制,也是一样的问题。当我全片擦除后再去测量,根据数据手册,GPIO应该默认是浮空状态,但是PA1管脚依然带3.3V电压!

请问这是为什么?应该怎么解决?

使用特权

评论回复
沙发
maudlu| | 2024-6-4 11:16 | 只看该作者
在STM32中,每个GPIO引脚都可以通过编程设置为不同的模式,如输入浮空、上拉输入、下拉输入、模拟输入、开漏输出、推挽输出等。

使用特权

评论回复
板凳
tifmill| | 2024-6-4 12:33 | 只看该作者
PA1管脚可以用于简单的输入/输出控制,例如控制LED灯的亮灭。

使用特权

评论回复
地板
tabmone| | 2024-6-4 15:01 | 只看该作者
如果需要将PA1管脚的输出电压转换为5V,需要额外的电路来实现电平转换,例如使用三极管或MOSFET等

使用特权

评论回复
5
yorkbarney| | 2024-6-5 13:18 | 只看该作者
断开所有外部连接,确认PA1的电压是否改变,以排除外部电路的影响。

使用特权

评论回复
6
ingramward| | 2024-6-5 17:17 | 只看该作者
在某些情况下,PA1管脚可以复用为其他外设的接口,如串行通信接口(USART),此时它将根据外设的要求进行配置

使用特权

评论回复
7
chenjun89| | 2024-6-5 19:30 | 只看该作者
你这个现象有点怪,检查一下IO是不是和其他信号短路了。

使用特权

评论回复
8
beacherblack| | 2024-6-7 16:05 | 只看该作者
在某些情况下,复位电路的异常可能导致MCU未能正确复位,从而影响到GPIO的状态。

使用特权

评论回复
9
plsbackup| | 2024-6-7 19:46 | 只看该作者
如果PA1管脚与外部电路连接,并且外部电路在某种条件下始终为PA1管脚提供3.3V的电压,那么无论STM32F4如何配置PA1管脚,它都将表现为始终带有3.3V电压。

使用特权

评论回复
10
jtracy3| | 2024-6-7 23:01 | 只看该作者
如果PA1管脚的内部上拉或下拉电阻被激活,且设置为上拉,那么在没有外部输入信号的情况下,管脚将保持在3.3V。

使用特权

评论回复
11
ingramward| | 2024-6-8 10:56 | 只看该作者
可能是PA1被配置为了输出高电平(推挽输出或开漏输出加上内部上拉),或者配置为了输入并启用了内部上拉电阻。你需要检查你的代码中对PA1的初始化配置,确保它没有被无意中设置为此状态。

使用特权

评论回复
12
minzisc| | 2024-6-8 14:51 | 只看该作者
如果PA1管脚被配置为输入模式,并且启用了内部上拉电阻,那么在没有外部信号输入的情况下,PA1管脚的电平将被上拉到3.3V。

使用特权

评论回复
13
plsbackup| | 2024-6-10 16:11 | 只看该作者
首先需要查看你的电路设计,确认PA1管脚的配置是否正确。

使用特权

评论回复
14
mmbs| | 2024-6-10 20:03 | 只看该作者
可能是外部电路或连接到PA1的组件导致了3.3V的电压。例如,如果PA1连接到了一个3.3V的电源或电平转换器,那么这个管脚就会有3.3V的电压。

使用特权

评论回复
15
backlugin| | 2024-6-11 15:08 | 只看该作者
如果PA1管脚被配置为输出模式,请检查其输出电平设置是否为高电平。

使用特权

评论回复
16
febgxu| | 2024-6-11 18:40 | 只看该作者
如果ADC的输入模式被设置为推挽输出,而不是浮空输入或上拉/下拉输入,那么PA1管脚可能会被内部上拉到3.3V。

使用特权

评论回复
17
uiint| | 2024-6-11 22:59 | 只看该作者
如果PA1管脚被配置为输出模式,并且输出电平被设置为高电平(High),那么它将会输出3.3V(假设STM32F4的供电电压为3.3V)。

使用特权

评论回复
18
ulystronglll| | 2024-6-12 13:00 | 只看该作者
如果PA1管脚被配置为输入或者浮空,那么它不应该有持续的3.3V电压,因为这可能会损坏输入电路或者影响其他电路的运作。

使用特权

评论回复
19
timfordlare| | 2024-6-12 21:15 | 只看该作者
如果你的电路中PA1管脚被配置为输入或者浮空,并且你看到它始终有3.3V电压,那么可能是由于外部电路的故障或者是与微控制器配置有关的问题。

使用特权

评论回复
20
louliana| | 2024-6-14 10:47 | 只看该作者
如果外部电路设计不当,例如错误地将PA1通过外部电阻或其他方式连接到3.3V电源,也会导致PA1管脚始终带高电平。

使用特权

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

本版积分规则

1522

主题

4615

帖子

6

粉丝