OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4005|回复: 9

STM32下拉输入无效

[复制链接]

4

主题

23

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-8-28
在线时间
11 小时
发表于 2016-5-11 09:54:32 | 显示全部楼层 |阅读模式
10金钱
我的MINI板,在ADC实验时用到了PA0~7这八个IO口作为模拟输入,结果发现有几个固定的端口在悬空时值一直为最大值4095左右,当时没在意,结果最后测试时发现这几个IO口和其他IO测的AD值有明显的出入,后来我把所有端口的模式配置为下拉输入,按理引脚悬空时值应该为0,但不正常的那几个都有很大值其中3个为1900多,,PA7口还是4095相当于没有下拉,我去看了看板子的设计图也没发现这些接口外部接了其他东西,,不知道是我的IO口坏了还是其他什么原因。。求大神解答!

最佳答案

查看完整内容[请看2#楼]

看外部电路啊!!外部有上拉电阻,或者接了其他外设,都会影响ADC读数。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-5-11 09:54:33 | 显示全部楼层
看外部电路啊!!外部有上拉电阻,或者接了其他外设,都会影响ADC读数。
回复

使用道具 举报

4

主题

23

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-8-28
在线时间
11 小时
 楼主| 发表于 2016-5-11 10:01:08 | 显示全部楼层
好吧,,,现在PA7又稳定变成1900多了。。。
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11544
金钱
11544
注册时间
2014-4-1
在线时间
1315 小时
发表于 2016-5-11 10:06:56 | 显示全部楼层

悬空应当为0。。。。谁说的?

端口直接接固定电平,内部不要上拉、下拉,再测。

回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11544
金钱
11544
注册时间
2014-4-1
在线时间
1315 小时
发表于 2016-5-11 10:07:03 | 显示全部楼层

悬空应当为0。。。。谁说的?

端口直接接固定电平,内部不要上拉、下拉,再测。

回复

使用道具 举报

4

主题

23

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-8-28
在线时间
11 小时
 楼主| 发表于 2016-5-11 10:11:49 | 显示全部楼层
xuande 发表于 2016-5-11 10:07
悬空应当为0。。。。谁说的?

端口直接接固定电平,内部不要上拉、下拉,再测。

下拉的话应该是芯片内部会接一个下拉电阻,,这时值应该为0的,而且其他几个正常IO口也确实是0左右的数值,只有那几个固定的口会有很大的值,如果端口设成模拟输入也就是内部不上,下拉,测电压那几个下拉不为0的端口测的值和其他的是不一样的,,,你能不能再你的板子上试试看,,,看端口配置成这样
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IPD;                //下拉输入引脚
GPIO_Init(GPIOA, &GPIO_InitStructure);
是不是值都是一样的。。。
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11544
金钱
11544
注册时间
2014-4-1
在线时间
1315 小时
发表于 2016-5-11 10:19:16 | 显示全部楼层

上、下拉电阻的阻值比较大,只用在数字输入或输出的情况。

在模拟状态下,这个电阻的驱动能力不够,
必须用外部的低内阻信号源来驱动。


回复

使用道具 举报

4

主题

23

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-8-28
在线时间
11 小时
 楼主| 发表于 2016-5-11 10:25:12 | 显示全部楼层
xuande 发表于 2016-5-11 10:19
上、下拉电阻的阻值比较大,只用在数字输入或输出的情况。

在模拟状态下,这个电阻的驱动能力不够,

恩,这个我知道,但现在我的问题就是在把引脚设置为模拟输入,引脚外接稳定电压时,那几个非正常的端口测出的AD值和其他的不太一样,在引脚悬空时值为最大4095(此时正常的为2800多),,搞不明白这是为啥。。。
回复

使用道具 举报

4

主题

23

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-8-28
在线时间
11 小时
 楼主| 发表于 2016-5-11 11:02:34 | 显示全部楼层
我把那几个出问题的IO口换成了其他有AD功能的IO口(PC口),发现其中有的是正常的,有的也是不正常的(PC口有一个口模拟输入空接时是0有的也是4095),其实不正常的IO在模拟输入测外部电压时值也是大体对的,但是和其他正常IO有出入,再就是在引脚悬空时的值为3.3V(AD值4095)而正常IO为2000多,,我现在也不知道是我的芯片出问题了还是这个本来设计就是这样。。。新手懂的少,,,求指教
回复

使用道具 举报

4

主题

23

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-8-28
在线时间
11 小时
 楼主| 发表于 2016-5-12 16:04:46 | 显示全部楼层
正点原子 发表于 2016-5-11 09:54
看外部电路啊!!外部有上拉电阻,或者接了其他外设,都会影响ADC读数。

恩 刚仔细看了MINI板子的设计图,发现那几个悬空时高电压的接口确实都外接了上拉电阻和3.3V的电压!,那这样的话这几个通道还能正常的进行AD采集嘛?。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-7 00:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表