STM32
直播中

王斌

7年用户 1299经验值
私信 关注
[问答]

STM32 PB3管脚设置为浮空输入,上电之前如果管脚保持高电平,检测出来的一直都是低为什么?

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);



回帖(1)

尚文清

2024-4-30 17:47:43
这个问题可能是由于以下几个原因导致的:

1. 芯片质量问题:可能是最近一批货的STM32芯片存在质量问题,导致PB3管脚在特定条件下无法正常工作。建议联系芯片供应商进行反馈和更换。

2. PCB布局问题:虽然已经排除了PCB和焊接的问题,但是PCB布局可能对信号的稳定性产生影响。建议检查PCB布局,确保PB3管脚周围的走线和元件布局合理。

3. 电源问题:电源不稳定或者电源纹波过大可能导致PB3管脚的信号不稳定。建议检查电源电路,确保电源稳定且纹波在允许范围内。

4. 温度敏感性:从描述中可以看出,问题与温度有关。可能是芯片内部的某些元件对温度敏感,导致在不同温度下工作状态不同。可以尝试在芯片周围增加散热措施,降低工作温度。

5. 软件问题:虽然已经简化了软件,但是仍然存在软件问题的可能性。建议检查软件逻辑,确保在读取PB3管脚状态时没有其他干扰。

6. 外部干扰:可能是外部电磁干扰导致PB3管脚信号不稳定。建议检查周围环境,排除可能的干扰源。

为了解决这个问题,可以尝试以下步骤:

1. 更换芯片:联系供应商更换最近一批有问题的芯片,看是否能够解决问题。

2. 优化PCB布局:重新设计PCB布局,确保PB3管脚周围的走线和元件布局合理。

3. 检查电源电路:确保电源稳定且纹波在允许范围内。

4. 增加散热措施:在芯片周围增加散热措施,降低工作温度。

5. 检查软件逻辑:确保在读取PB3管脚状态时没有其他干扰。

6. 排除外部干扰:检查周围环境,排除可能的干扰源。

通过以上步骤,希望能够找到问题的根本原因并解决。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分