完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如果使用复位引脚运行它,则可以使用“__HAL_RCC_GET_FLAG()”函数
您可以看到设置了“RCC_FLAG_PINRST”。 然而,当使用“HAL_NVIC_SystemReset()”执行时,“RCC_FLAG_SFTRST”和“RCC_FLAG_PINRST”被设置。 我的期望是只应设置“RCC_FLAG_SFTRST”。 是什么原因? 而“__HAL_RCC_GET_FLAG(RCC_FLAG_LPWRRST)”根本不起作用。 //我的代码 无效主要() { 如果(真== __HAL_PWR_GET_FLAG(PWR_FLAG_WUF2)) { __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WUF2); debug("唤醒引脚 2rn"); } 如果(真== __HAL_PWR_GET_FLAG(PWR_FLAG_SB)) { __HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB); debug("待机rn"); } 如果(真== __HAL_PWR_GET_FLAG(PWR_FLAG_WUF)) { __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WUF); debug("所有唤醒引脚rn"); } 如果(真== __HAL_RCC_GET_FLAG(RCC_FLAG_PWRRST)) debug("上电复位rn"); 如果(真== __HAL_RCC_GET_FLAG(RCC_FLAG_PINRST)) 调试(“密码重置rn”); 如果(真== __HAL_RCC_GET_FLAG(RCC_FLAG_SFTRST)) debug("软件重置rn"); 如果(真== __HAL_RCC_GET_FLAG(RCC_FLAG_IWDGRST)) debug("看门狗复位rn"); 如果(真== __HAL_RCC_GET_FLAG(RCC_FLAG_LPWRRST)) 调试(“低功耗复位rn”); __HAL_RCC_CLEAR_RESET_FLAGS(); 而(1) { 如果(GPIO_PIN_RESET == HAL_GPIO_ReadPin(BTN1_GPIO_Port,BTN1_Pin)) { HAL_NVIC_SystemReset(); } 如果(GPIO_PIN_RESET == HAL_GPIO_ReadPin(BTN2_GPIO_Port,BTN2_Pin)) { HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN2_HIGH); HAL_RTCEx_SetWakeUptimer_IT(&hrtc, 9, RTC_WAKEUPCLOCK_CK_SPRE_16BITS); __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WUF2|PWR_FLAG_SB); HAL_PWR_EnterSTANDBYMode(); } } } |
|
相关推荐
1个回答
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2623 浏览 1 评论
3206 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1779 浏览 1 评论
3605 浏览 6 评论
5984 浏览 21 评论
934浏览 4评论
1311浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
579浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1299浏览 3评论
1353浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 20:33 , Processed in 0.948639 second(s), Total 46, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号