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

STM32L431RCT6 的待机模式异常问题,进入待机模式后一段时间,蜂鸣器会自动响,不知道什么原因

[复制链接]
封刀岁月不为峥嵘 提问时间:2023-10-8 09:20 / 已解决

QQ截图20231008091720.png

image.png

image.png
收藏 评论5 发布时间:2023-10-8 09:20

举报

5个回答
xmshao 最优答案 回答时间:2023-10-8 11:21:41
给你几点提醒供参考:
第一,你调用的HAL_RCC_APB2_FORCE_RESET()函数,我看了下手册,应该不是对GPIO外设做复位。
请你再确认下。另外,调用这个FORCE_RESET函数后,建议后续调用RELEASE_RESET函数。具体到这里可能
问题不大,其它地方注意成对使用。


第二、建议你根据蜂鸣器的驱动电平要求,同样通过HAL_PWREx_EnableGPIOPullUp或HAL_PWREx_EnableGPIOPullDown
在进入standby之前将其电平固定下来。


第三、芯片复位后的GPIO除个别调试相关脚外,都处于高阻模拟输入态。此时管脚电平取决于外部电路。
封刀岁月不为峥嵘 回答时间:2023-10-8 09:31:12

我感觉这个现象非常像我Debug的时候,把程序停在GPIO初始化之前,一段时间后蜂鸣器也会响,但是停在GPIO初始化之后,就不会响。但是怎么解决呢,进入待机模式一定会把所有时钟关闭啊。

butterflyspring 回答时间:2023-10-8 10:56:48
看不出来蜂鸣器是哪个引脚,同时是脉冲驱动还是电平驱动。 楼主可以在故障时量测一下是电平还是脉冲。
如果是电平的话,根据手册描述是可以配置上拉或下拉的。
如果担心有状态失控的瞬间,也可以考虑外部加上下拉电阻解决这样的问题。
Stm32l4 IO standby L4.PNG

封刀岁月不为峥嵘 回答时间:2023-10-8 11:26:36

butterflyspring 发表于 2023-10-8 10:56
看不出来蜂鸣器是哪个引脚,同时是脉冲驱动还是电平驱动。 楼主可以在故障时量测一下是电平还是脉冲。
如果 ...

是电平驱动,但是我的目的是进入待机模式,配置成上下拉意义不大,因为待机模式IO口默认是浮空的把

封刀岁月不为峥嵘 回答时间:2023-10-8 11:35:37

xmshao 发表于 2023-10-8 11:21
给你几点提醒供参考:
第一,你调用的HAL_RCC_APB2_FORCE_RESET()函数,我看了下手册,应该不是对GPIO外设 ...

好的,我会参考意见一;

对于意见二,HAL_PWREx_EnablePullUpPullDownConfig将蜂鸣器引脚拉低,确实能解决我的问题,我刚才也试了一下,把所有程序都注释掉,蜂鸣器也会响,我怀疑是栅极浮空导致的。不知道有没有其他方法可以解决这个问题。

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版