完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
改的PM里的例程
int main() { DelayMs(2); SetSysClock( CLK_SOURCE_HSE_32MHz ); // 设置外部32M做主频 GPIOA_ModeCfg( GPIO_Pin_All, GPIO_ModeIN_PU ); GPIOB_ModeCfg( GPIO_Pin_All, GPIO_ModeIN_PU ); /* 配置串口调试 */ // DebugInit(); PRINT( "Start @ChipID=%02xn", R8_CHIP_ID ); DelayMs(200); #if 1 /* 配置唤醒源为 GPIO - PA6&PA5 */ GPIOA_ModeCfg( GPIO_Pin_6|GPIO_Pin_5|GPIO_Pin_4, GPIO_ModeIN_PU ); GPIOA_ITModeCfg( GPIO_Pin_6|GPIO_Pin_5|GPIO_Pin_4, GPIO_ITMode_FallEdge ); // 下降沿唤醒 NVIC_EnableIRQ( GPIO_IRQn ); PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_GPIO_WAKE ); #endif while(1){ #if 1 PRINT( "IDLE mode sleep n"); DelayMs(1); LowPower_Idle(); PRINT( "wake.. n"); DelayMs(500); #endif #if 1 PRINT( "sleep mode sleep n"); DelayMs(5000); LowPower_Sleep( RB_PWR_RAM14K|RB_PWR_RAM2K ); //只保留14+2K SRAM 供电 /* 使用HSI/5=6.4M睡眠,唤醒时间大概需要 2048Tsys≈330us HSE起振一般不超过1.2ms(500us-1200us),所以切换到外部HSE,需要 1.2ms-330us 这个时间可以保证HSE足够稳定,一般用于蓝牙 DelayUs()函数时基于32M时钟的书写,此时主频为6.4M,所以 DelayUs((1200-330)/5) */ // if(!(R8_HFCK_PWR_CTRL&RB_CLK_XT32M_PON)) { // 是否HSE上电 // PWR_UnitModCfg( ENABLE, UNIT_SYS_HSE ); // HSE上电 // DelayUs((1200)/5); // } // else if(!(R16_CLK_SYS_CFG&RB_CLK_OSC32M_XT)){ // 是否选择 HSI/5 做时钟源 // DelayUs((1200-330)/5); // } // HSECFG_Current( HSE_RCur_100 ); // 降为额定电流(低功耗函数中提升了HSE偏置电流) // DelayUs(500/5); // 等待稳定 1-5us DelayMs(500); // GPIOA_ModeCfg( GPIO_Pin_All, GPIO_ModeIN_PU ); // GPIOB_ModeCfg( GPIO_Pin_All, GPIO_ModeIN_PU ); SetSysClock( CLK_SOURCE_HSE_32MHz ); // PRINT( "wake.. n"); DelayMs(5000); #endif } } 理论验证流程是while(1) { 进ldle -> IO唤醒 -> 进sleep-> IO唤醒 } 理论电流读表显示是 1800μA (ldle) -> 1.3μA(sleep) 但是会很频繁地出现在sleep模式唤醒后电流读表变成450μA左右(程序跑飞?) |
|
相关推荐
2个回答
|
|
这里提供一个思路:先验证sleep模式是否正常,在官方例程中屏蔽另外三种睡眠模式,只打开sleep模式,将程序中打印删除,同时while循环确保睡眠。唤醒源是GPIO,所以在无操作时,芯片都是处于sleep模式。去掉开发板上的小灯等功耗器件,进行功耗的测量。具体功耗可参考这个表格。
这里有一份帖子可以参考一下: http://www.wch.cn/bbs/thread-88893-1.html |
|
|
|
没有效果。在sleep模式下唤醒还是有概率不能一次唤醒成功,从sleep的1.3μA变成450μA,再触发几次IO唤醒有概率会从450μA回到正常的循环中。板子上只有芯片+4个电容+32M晶振了。
|
|
|
|
只有小组成员才能发言,加入小组>>
503 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2899 浏览 2 评论
2387 浏览 1 评论
847浏览 2评论
CH32F103C8T6使用当前官网上的CDC例程会出现设备描述符请求失败
390浏览 1评论
670浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
403浏览 1评论
471浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-12 12:53 , Processed in 1.451026 second(s), Total 83, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号