|
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);
|
微信公众号
手机版
楼主这个故障应该不是PB3的问题,PB3是设置悬浮状态,高低电平由外部电路决定,应该是连接PB3的外设的问题,贴出这小部分的硬件图看看
评分
查看全部评分
评分
查看全部评分
单纯的浮空等效为高阻输入,或类似MOS管输入,检测状态没有意义。
评分
查看全部评分
评分
查看全部评分
PB3就接了一个5v,一个单独的5v,跟板上供电不是一起的。示波器量了很稳定,一直保持着高电平,
上拉也一样的情况
软件就这一小段,应该是没问题的,因为稍微加热他就能正常了,至于硬件电路,我都已经换了一个单独的测试封装,现象也是一样的,我怀疑是芯片有问题,因为出问题的都是一批货
我是一个检测一个5v上拉的按键,按了后对地短路,电平变为0。检测电压没问题吧,只是会有个问题,就是5v拿掉后电压不会掉下来,电流没地方流走。但是这个问题也只是导致一直高电压,而不是一直检测到0.而且我也单独试过上拉输入,问题是一样的