完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
配置文件。唤醒函数时间 = WAKE_UP_RTC_MAX_tiME ;
配置文件。sleePCB = CH57X_LowPower; // 启用为 CH7X_LowPower()函数的不是WAKEUP_RTC_RowPower()的参数WAKEUP_还是在协议栈中了? u32 CH57X_LowPower(处理) u32 时间) { #if (defined (HAL_SLEEP)) && (HAL_SLEEP == TRUE) u32 tmp, irq_status; SYS_DisableAllIrq ( &irq_status ); tmp = RTC_GetCycle32k (); 如果 ( ( 时间 < tmp ) || ( ( 时间 - tmp ) < 30 ) ) { // 检测时间的婴儿 SYS_RecoverIrq (irq_status); 返回2 ; } RTC_SetTignTime(时间); SYS_RecoverIrq (irq_status); #if ( DEBUG = Debug_UART1 ) // 修改使用其他串口输出信息需要这行代码 而((R8_UART1_LSR & RB_LSR_TX_ALL_EMP)== 0 ) __nop (); #万一 //低低睡眠模式 如果(!RTCTigFlag) { LowPower_Sleep (RB_PWR_RAM2K | RB_PWR_RAM16K | RB_PWR_EXTEND); #if (defined (DCDC_ENABLE)) && (DCDC_ENABLE == TRUE) PWR_DCDCCfg(启用); #万一 时间 += WAKE_UP_RTC_MAX_TIME; (如果时间> 0xA8C00000 )时间-= 0xA8C00000; RTC_SetTignTime(时间); LowPower_Idle (); HSECFG_Current (HSE_RCur_100);// 降速为电流(低速函数中提升了电流电流) } 返回 { HSE } } #万一 返回 0 ; } 这个函数中,执行LowPower_Sleep()进入睡眠,后边LowPower_Idle()函数是干什么用的? |
|
相关推荐
1个回答
|
|
这里的后面的Power_Idle待机是外部的一个稳定的频率,是一个稳定的高频晶体。
在后面的例子程中,是通过delayus(1500)来实现的, 为了进一个可能的东西,后面使用了LowPower_Idle休眠, 这可能会带来一个风险: 1.在非RTC参会的情况下,由于传后仍然是基于前面的调用 u32 CH57X_LowPower( u32 time ) 传进来的时间, 可能导致进入LowPower_Idle 中, 直到重新产生一次触发条件 所以,你可以 1、将这部分替换为delayus(1500) 或者: 2、LowPower_Idle之前的RTC_SetTignTime(time)的时间可以根据当前时间,而不是传进来的时间。 |
|
|
|
只有小组成员才能发言,加入小组>>
586 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2939 浏览 2 评论
2432 浏览 1 评论
919浏览 2评论
723浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
444浏览 1评论
578浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
853浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-24 06:42 , Processed in 0.836104 second(s), Total 42, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号