KAKz 2023-05-12 17:33 采纳率: 40%
浏览 9
已结题

Stm32停止模式的问题

Stm32f103c8t6从停止模式通过中断唤醒后,怎么让他继续执行程序?进入停止模式之前oled显示,进入停止模式后下载不了程序,oled也不亮,然后用中断唤醒,但oled怎么都不亮,但是能下载程序,说明stm32应该已经被唤醒

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-12 22:09
    关注
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/7451160
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:用stm32f103c8t6点亮0.96寸oled屏(附带百度云例程)
    • 除此之外, 这篇博客: stm32项目_stm32f103c8t6项目_循迹避障小车完整制作过程_智能小车设计_STM32智能小车教程-循迹-避障-蓝牙遥控-跟随中的 OLED模块 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 使用:OLED显示屏模块 0.96寸 IIC/SPI

      选择原因:价格较低、使用方便

      注意:

      这里使用 四管脚 顺序为 GND VCC SCL SDA,绘制PCB要注意顺序

      供电为3.3V

      image-20220113214310617
    • 以下回答由chatgpt基于相关博客总结生成:

      对于Stm32f103c8t6停止模式的问题,可能是由于停止模式下主频被关闭,需要在唤醒后重新配置时钟。具体解决方案如下:

      1. 在进入停止模式之前,记录当前系统时钟,以在唤醒后重新配置时钟。可以使用如下代码:

      RCC_ClocksTypeDef RCC_Clocks; RCC_GetClocksFreq(&RCC_Clocks); uint32_t HCLK_Frequency = RCC_Clocks.HCLK_Frequency;

      1. 进入停止模式之前,关闭所有用于唤醒的外部中断,避免唤醒时意外触发外部中断。可以使用如下代码:

      NVIC_DisableIRQ(EXTI0_IRQn); // 关闭外部中断0 NVIC_DisableIRQ(EXTI1_IRQn); // 关闭外部中断1 // ...

      1. 配置唤醒源,以便能够在需要时唤醒系统。可以使用如下代码:

      RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); PWR_WakeUpPinCmd(ENABLE); PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);

      1. 唤醒后,重新配置时钟。可以使用如下代码:

      RCC_DeInit(); RCC_HSEConfig(RCC_HSE_ON); while (RCC_WaitForHSEStartUp() != SUCCESS); RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); RCC_PLLCmd(ENABLE); while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); FLASH_SetLatency(FLASH_Latency_2); RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); while (RCC_GetSYSCLKSource() != 0x08);

      1. 重新开启外部中断,使得系统能够响应外部中断。可以使用如下代码:

      NVIC_EnableIRQ(EXTI0_IRQn); // 开启外部中断0 NVIC_EnableIRQ(EXTI1_IRQn); // 开启外部中断1 // ...

      1. 然后再次配置 OLED,并恢复显示内容。具体操作可以参考原代码中的初始化和显示函数。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月26日
  • 已采纳回答 5月18日
  • 创建了问题 5月12日

悬赏问题

  • ¥15 逐月累计,月份不连续,补齐月份
  • ¥15 应用简单的Python代码完成一个学生成绩管理系统
  • ¥15 用matlab求微分方程初值问题
  • ¥15 vscode下编写第三方库opencv与pcl代码时没有代码提示
  • ¥15 能够跑通不报错,如何解决?(标签-matlab)
  • ¥15 MOS在RDS较大,频率高时开关波形异常
  • ¥15 SCENIC分析报错求解答
  • ¥15 ceph初始化mon不成功 下图不报错 这个是什么元
  • ¥15 数学建模数学建模少ai
  • ¥35 这个等效电路图是什么意思?(答疑)(有没有不是chat的,我就是在chat搜不到才来问的,chat还开了VIP)(可以追加酬金)