你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 PB3管脚输入

[复制链接]
夏弱特 提问时间:2019-1-16 16:39 /
STM32 PB3管脚设置为浮空输入,上电之前如果管脚保持高电平,检测出来的一直都是低,产品已经出了几千片,就是最近一批货有大概10片有这个问题,对着芯片用风枪加热到一定温度就能检测到高电平,保持芯片还是温度比较高的状态重新上电,也能正常检测到高电平,但是温度降下来后,重新上电检测出来的就是低电平了。为了排除了PCB和焊接的问题,也用了一个LQFP100的测试座子把芯片从板子上拿下来试过了,问题还是一样。软件已经简化到只用到PA9 PA10打印口还有PB3输入,时钟也是用了内部的。初始化完成后就while循环间隔一秒钟左右读取PB3管脚的状态。
管脚的初始化如下:
               RCC_APB2PeriphClockCmd((RCC_APB2Periph_GPIOA| RCC_APB2Periph_GPIOB| RCC_APB2Periph_AFIO), ENABLE);
               GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
               GPIO_InitTypeDef GPIO_InitStructure;
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
                GPIO_Init(M_GPIOB, &GPIO_InitStructure);

                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
                GPIO_Init(M_GPIOA, &GPIO_InitStructure);

                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
                GPIO_Init(M_GPIOA, &GPIO_InitStructure);
QQ截图20190118092911.jpg







<
收藏 评论8 发布时间:2019-1-16 16:39

举报

8个回答
wenyangzeng 回答时间:2019-1-16 17:01:18
本帖最后由 wenyangzeng 于 2019-1-16 17:02 编辑

楼主这个故障应该不是PB3的问题,PB3是设置悬浮状态,高低电平由外部电路决定,应该是连接PB3的外设的问题,贴出这小部分的硬件图看看

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

qiangtech 回答时间:2019-1-16 17:32:40
上拉或下拉后再读看是不是稳定的。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

toofree 回答时间:2019-1-17 00:09:11
浮空输入你检测个什么电平,要检测得上/下拉,要么外接,要么改输入模式位上/下拉。
单纯的浮空等效为高阻输入,或类似MOS管输入,检测状态没有意义。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

五哥1 回答时间:2019-1-17 08:34:30
从楼主描述来看,似乎有外部电路把PB3拉高,这个时候检测应当是高电平才对,但是在几千片成品中发现了几片不一样的有问题的板子,在外部环境一致的情况下,竟然检测为低电平,这个就开始怀疑是程序的问题,我说你还是怀疑下硬件电路吧。程序没看出问题。用万用表和示波器看看外围硬件电路的一致性。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

夏弱特 回答时间:2019-1-18 09:20:35
wenyangzeng 发表于 2019-1-16 17:01
楼主这个故障应该不是PB3的问题,PB3是设置悬浮状态,高低电平由外部电路决定,应该是连接PB3的外设的问题 ...

PB3就接了一个5v,一个单独的5v,跟板上供电不是一起的。示波器量了很稳定,一直保持着高电平,
夏弱特 回答时间:2019-1-18 09:21:00
qiangtech 发表于 2019-1-16 17:32
上拉或下拉后再读看是不是稳定的。

上拉也一样的情况
夏弱特 回答时间:2019-1-18 09:23:04
五哥1 发表于 2019-1-17 08:34
从楼主描述来看,似乎有外部电路把PB3拉高,这个时候检测应当是高电平才对,但是在几千片成品中发现了几片 ...

软件就这一小段,应该是没问题的,因为稍微加热他就能正常了,至于硬件电路,我都已经换了一个单独的测试封装,现象也是一样的,我怀疑是芯片有问题,因为出问题的都是一批货
夏弱特 回答时间:2019-1-18 09:28:05
toofree 发表于 2019-1-17 00:09
浮空输入你检测个什么电平,要检测得上/下拉,要么外接,要么改输入模式位上/下拉。
单纯的浮空等效为高阻 ...

我是一个检测一个5v上拉的按键,按了后对地短路,电平变为0。检测电压没问题吧,只是会有个问题,就是5v拿掉后电压不会掉下来,电流没地方流走。但是这个问题也只是导致一直高电压,而不是一直检测到0.而且我也单独试过上拉输入,问题是一样的
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版