OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2108|回复: 0

不启动IWDG, 在待机模式下PA0不能唤醒

[复制链接]

16

主题

147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7136
金钱
7136
注册时间
2015-1-23
在线时间
105 小时
发表于 2019-12-26 15:56:27 | 显示全部楼层 |阅读模式
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_ADC1_Init();
  MX_SPI1_Init();
  MX_USART1_UART_Init();
  MX_USART2_UART_Init();
  MX_IWDG_Init();
  MX_TIM2_Init();
  MX_RTC_Init();
  MX_USB_DEVICE_Init();



        GPIO_InitTypeDef GPIO_InitStruct;

//    __HAL_RCC_APB2_FORCE_RESET();       //复位所有IO口        
        __HAL_RCC_BKP_CLK_ENABLE();
        __HAL_RCC_PWR_CLK_ENABLE();
       
        __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
        HAL_PWR_EnableWakeUpPin (PWR_WAKEUP_PIN1);
        HAL_PWR_EnterSTANDBYMode();

生成代码后, 先调试的待机模式, 用PA0唤醒.  结果就是不成功,  查了很多地方也没用, 最后把所有外设初始化全部注释, 再试,竟然成功了, 继续查发现只需要注释掉MX_IWDG_Init();就行. 然后开启MX_IWDG_Init()仿真进入这个函数, 发现如果不启动IWDG,他的SR状态寄存器一直是0x03, 也就是重装载值的更新正在进行中,  直到HAL_IWDG_Start(&hiwdg); //启动独立看门狗, SR状态寄存器才是0x00,  这个时候再用PA0唤醒就可以.


总结一下, 进入待机模式很简单,就上面几条语句.  但IWDG的SR为ox03会影响PA0唤醒,确实让我想不到.


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-21 01:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表