历史上的今天
返回首页

历史上的今天

今天是:2024年08月24日(星期六)

2019年08月24日 | stm32在rt-thread上的PWR(电源管理)

2019-08-24 来源:eefocus

Low-power modes有三种Sleep mode、Stop mode、Standby mode,实现如下:


void SYSCLKConfig_START(void)

{

    ErrorStatus HSEStartUpStatus;

    /* 使能 HSE */

    RCC_HSEConfig(RCC_HSE_ON);



    /* 等待 HSE 准备就绪 */

    HSEStartUpStatus = RCC_WaitForHSEStartUp();



    if(HSEStartUpStatus == SUCCESS)

    {



        /* 使能 PLL */ 

        RCC_PLLCmd(ENABLE);



        /* 等待 PLL 准备就绪 */

        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)

        {

        }



        /* 选择 PLL 作为系统时钟源 */

        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);



        /* 等待 PLL 被选择为系统时钟源 */

        while(RCC_GetSYSCLKSource() != 0x08)

        {

        }

    }

}



void sysTick_init(void)

{

    /* Configure the SysTick */

    SysTick_Config( SystemCoreClock / RT_TICK_PER_SECOND );

}



void sysTick_Cmd(FunctionalState NewState)

{

    /* Check the parameters */

    assert_param(IS_FUNCTIONAL_STATE(NewState));

    if(ENABLE == NewState)

    {

        SysTick->CTRL &= SysTick_CTRL_ENABLE_Msk;

    }

    else

    {

        SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;

    }

}



void pwr_control(PowerMode NewState)

{

    /* Check the parameters */

    assert_param(IS_POWERMODE_STATE(NewState));

    if(SLEEP == NewState)

    {

        /* enter Sleep mode */

        /* SysTick_Handler() 会自增rt_tick,需要DISABLE。否则无法进入睡眠 */

        sysTick_Cmd(DISABLE);

        __WFI();

        /* exit Sleep mode */

        /* 单纯使用sysTick_Cmd(ENABLE)不能正常,rt_thread_delay()也会有影响 */

        sysTick_init();

    }

    else if(STOP == NewState)

    {

        /* enter Stop mode */

        sysTick_Cmd(DISABLE);

        PWR_EnterSTOPMode(PWR_Regulator_ON,PWR_STOPEntry_WFI);

        /* exit Sleep mode */

        /* HSE和HSI已关闭需重启开启 */

        sysTick_init();

        SYSCLKConfig_START();

    }

    else

    {

        /* 使能电源管理单元的时钟 */

        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR , ENABLE); 

        /* ALARM唤醒后不被置为SET */

        if(SET == PWR_GetFlagStatus(PWR_FLAG_WU))

        {

            PWR_ClearFlag(PWR_FLAG_WU);

        }

        /* Standby mode */

        PWR_EnterSTANDBYMode();

    }

}


推荐阅读

史海拾趣

安碁科技(AKER)公司的发展小趣事

随着市场需求的不断增长,安碁科技开始寻求扩大产能和全球化布局。1999年,公司正式量产电压控制振荡器(VCXO),并购置了更大的厂房以扩大产能。随后,安碁科技陆续在美国和中国大陆设立子公司和办事处,进一步拓展国际市场。这一系列的举措,不仅提高了公司的产能和效率,也使其能够更好地服务全球客户,实现业务的快速增长。

Bivar公司的发展小趣事

在电子行业的初期,Bivar公司以其创新的技术突破赢得了市场的认可。公司研发出一款新型电阻器,具有高稳定性和长寿命的特点,迅速在行业内引起了关注。凭借这一技术优势,Bivar逐渐在电阻器市场上占据了一席之地,并逐渐扩大生产规模,实现了公司的初步成长。

BAND-IT公司的发展小趣事

在电子行业的推动下,大型基础设施的建设也迎来了快速发展。韦拉札诺海峡大桥作为连接斯塔顿岛和布鲁克林的世界上最长的吊桥,其建设过程对紧固件的需求量大且要求严格。BAND-IT公司凭借其大型不锈钢卡箍产品,成功参与了这一重大工程的建设。这些卡箍不仅具有强大的承重能力,而且安装简便、安全可靠,为大桥的稳定性和安全性提供了有力保障。

GE Power Electronics Inc公司的发展小趣事
在电路制作完成后,进行充分的测试验证,包括功能测试、性能测试和可靠性测试等。通过测试发现并解决潜在问题,确保电路的稳定性和可靠性。
Fillfactory Nv公司的发展小趣事

FIDELIX公司成立于1990年,是一家专注于存储芯片研发与销售的韩国企业。在公司成立初期,FIDELIX凭借对技术的深入研究和对市场的敏锐洞察,成功推出了多款性能优越的NAND FLASH(闪存)和SDR/DDR(单/双数率同步动态存储器)等存储芯片产品。这些产品不仅在韩国市场上获得了良好的口碑,同时也开始逐步进入国际市场。

随着技术的不断进步和市场的不断扩大,FIDELIX逐渐在韩国存储芯片领域崭露头角。公司不断投入研发资金,加强技术创新,努力提升产品的性能和品质。同时,FIDELIX也积极拓展销售渠道,与多家国内外知名厂商建立了合作关系,为公司的持续发展奠定了坚实的基础。

屹晶微(EG)公司的发展小趣事

随着业务的不断拓展和市场的不断扩大,屹晶微逐渐意识到与合作伙伴建立长期战略合作关系的重要性。于是,在2023年,他们与电子产业一站式服务平台华秋电子达成了授权代理合作。这一合作不仅为屹晶微提供了更广阔的市场渠道和客户资源,也为其未来的发展奠定了坚实的基础。

在合作过程中,华秋电子为屹晶微提供了全方位的支持和服务。他们共同推广屹晶微的芯片产品,为客户提供更优质的解决方案和服务。同时,华秋电子还利用自身的技术优势和渠道优势,帮助屹晶微拓展海外市场,提升品牌知名度和影响力。

以上两个故事只是屹晶微在电子行业中发展起来的一部分。他们的发展历程充满了挑战和机遇,但黄米龙和他的团队始终保持着坚定的信念和不懈的努力,为中国的芯片产业做出了积极的贡献。

问答坊 | AI 解惑

转载:60年后的电梯,祖国叫你一定要节能!!

本帖最后由 paulhyde 于 2014-9-15 09:11 编辑 如果让你来设计未来的电梯,你会从什么角度入手?酷炫的外观、创意的结构、非凡的体验还是绿色环保的特性? 我一直在关注“60年后的电梯”网络创意设计大赛,是快速电梯和视觉同盟合办的。最近发现 ...…

查看全部问答>

Zigbee的MAC地址和电脑的MAC地址有什么区别?

Zigbee的MAC地址64位 电脑的MAC地址48位 他们之间有什么联系和区别?…

查看全部问答>

求一个wince下的调试工具,像windbg那样的

如题 ,最好有成熟的教程或文档,如果有办法让windbg调试wince程序,感激赐教…

查看全部问答>

OV7620问题

谁知道OV7645FB OV7620 这两个传感器 的区别?? 它们接口相同吗?不同请详细介绍下 O(∩_∩)O~ 如果用OV7620的代码做参考去移植OV7645FB 修改大吗?…

查看全部问答>

请问我会vb ,c# 可以学习plc吗?

windows和web的程序都做过,但不懂plc(完全不懂),请问能学吗?难度有多大?如何开始?谢谢!…

查看全部问答>

我把仿真版的78m05改为7533,rlink就连不上了

                                 刚开始我的板还连的上,或有时掉电复位一下也可以,但最近它就是不干活了…

查看全部问答>

STM32的ADC测试还算不错,可惜没有差分通道(附图)

图片是实际的采集数据板子是英蓓特的DEMO板;程序是随机的ADC目录下的程序,硬件设置没动,修改了输出方式,增加了过采样设置,连续累加4096次ADC结果,但是除以256,相当于扩展了16倍,使输出数据打到了16位,而不是原来的12位。由于每秒256 ...…

查看全部问答>

求助

485芯片中与430RXD相连的管脚在板子断电情况下有66mv的电压,请问这种情况下430还能收到PC发过来的数据吗? PS:430TXD管脚的电压值为0 [ 本帖最后由 zzbaizhi 于 2012-3-9 16:40 编辑 ]…

查看全部问答>

altera注册问题

为什么我在altera中国官网上注册了账号,每次都显示“您的进程已经过期。请重新登录”,…

查看全部问答>

DA芯片的基准电压大家一般都用什么芯片来提供?

DA芯片的基准电压大家一般都用什么芯片来提供?…

查看全部问答>