STM32使用标准库,有时候在SLEEP模式下无法唤醒问题

       现在标准库暴露越来越多的问题,今天碰到一个客户在sleep mode下出现无法唤醒现象,正常来说,只要有中断,都可以把它唤醒,但事实就是相反,几千套产品出现几十台无法从sleep模式下唤醒。

      解决办法:

     1、在无法唤醒条件下,检测外围电压,电流,一切正常。

      2、测量唤醒源电压,能达到唤醒电平。
      3、查看代码配置,似乎并未有什么异常。
      4、通过对比重上电条件和唤醒后执行代码的条件,发现重上电初始化了时钟和IO口,而唤醒后却没有,尝试在唤醒后加上时钟初始化和IO口初始化,还是不行;
      5、最后在唤醒后先初始化IO口,再初始化时钟,发现能解决问题。
      总结:有可能标准库唤醒时,因硬件条件发生变化,导致原标准库出现逻辑问题,出现此类BUG。
  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F4标准库是一套用于STM32F4系列微控制器的软件库,它提供了方便易用的接口和函数来访问和控制片上外设。在使用STM32F4标准库之前,你需要下载并解压固件库文件,并将其包含在你的项目中。固件库的文件夹包括CMSIS文件夹和STM32F4xx_StdPeriph_Driver文件夹。其中,CMSIS文件夹包含符合CMSIS规范的文件,包括核内外设访问层代码和DSP软件库。STM32F4xx_StdPeriph_Driver文件夹包含了STM32F4标准外设固件库的源码文件和头文件。这些头文件和源文件对应着每个外设。 在使用固件库之前,你需要包含一些关键的头文件,如core_m4.h、system_stm32f4xx.h和stm32f4xx.h。core_m4.h是CMSIS提供的核心文件,适用于所有CM4内核的芯片;system_stm32f4xx.h是片上外设接入层系统头文件,主要用于设置系统和总线时钟相关的函数;stm32f4xx.h是STM32F4片上外设访问层头文件,包含了系统寄存器定义和内存操作的包装。 除了这些头文件,还有一些其他的文件也是常用的,如stm32f4xx_it.c、stm32f4xx_it.h和stm32f4xx_conf.h。stm32f4xx_it.c和stm32f4xx_it.h用于编写中断服务函数,而stm32f4xx_conf.h是外设驱动的配置文件。 固件库的使用还包括初始化NVIC的一些常用格式。可以使用NVIC_InitTypeDef结构体来初始化NVIC,并设置中断名、抢占优先级、响应优先级和IRQ通道使能。例如,使用下面的代码来初始化NVIC: NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = xxx_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); 这些是使用STM32F4标准库的基本步骤和注意事项。希望这些信息对你有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值