1 / 10
文档名称:

STM8低功耗设定及其例程.doc

格式:doc   大小:25KB   页数:10页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

STM8低功耗设定及其例程.doc

上传人:wxc6688 2019/11/23 文件大小:25 KB

下载得到文件列表

STM8低功耗设定及其例程.doc

相关文档

文档介绍

文档介绍:STM8低功耗设定及其例程STM8有三种低功耗模式,即等待、活跃停机和停机。具体它们三者有什么区别自己看官方手册去吧,这里只讲停机模式的应用,其他的一笔带过!一、进入的方式:等待模式进入用的指令是WFI,而活跃停机和停机用的都是halt(),所不同的是,在执行halt指令之前,如果开启了AWU,则是活跃停机,反之则是停机。还有一点要说明的是,在停机模式下独立看门狗是不能养的,而只能养窗口看门狗。二、具体进入的步骤:1、首先,你声明一个标志位,名字自己取。这个标志位是用来判断系统是该处于运行模式还是处于停机模式的。我这里用fPowerOn_flag,如下:boolfPowerOn_flag=FALSE;有了这个标志位以后就写下面的部分了:intmain(void){//设置内部16M晶振为系统时钟Clk_Init();//系统时钟初始化函数MWWDG_Init();//窗口看门狗初始化函数while(1){Free_WWDG();//喂狗函数if(fPowerOn_flag==FALSE){Halt_OffDevice();//停机前关闭不需要的外设halt();//进入停机模式System_Init();//系统初始化函数}if(fPowerOn_flag){//运行代码在这里添加}}}以上就是一个停机模式的模板了,大家参照着用就可以了。系统上电默认是进入停机模式,然后通过按键唤醒进入运行模式。下面为大家讲一下主函数中每个函数的写法和功能吧!2、各函数说明:a、时钟初始化函数:voidClk_Init(void){CLK_DeInit();//复位时钟寄存器CLK_HSICmd(ENABLE);//使能内部高速时钟CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV4);//配置内部高速时钟(时钟分频器:4分频),系统时钟4MHzCLK_ClockSecuritySystemEnable();//开启时钟安全系统}这个函数我想不用多讲了,大家都懂的。b、窗口看门狗函数:voidMWWDG_Init(void){WWDG_Init(COUNTERINIT,WINDOW);//COUNTERINIT=0x7f,WINDOW=0x77}这个是窗口看门狗初始化函数。voidFree_WWDG(void){INT8UCounterValue;CounterValue=(INT8U)(WWDG_GetCounter()&0x7F);/**判断是否小于所设置的窗口上限值*只有小于窗口上限值才能清零*/if(CounterValue<WINDOW){WWDG_SetCounter(COUNTERINIT);}}这个是窗口看门狗喂狗函数,防止看门狗复位。c、停机前外设设置函数:voidHalt_OffDevice(void){//关闭设备前,设置系统主时钟,和中断Clk_Init();//CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV4);ADC1_DeInit();TIM1_DeInit();//停机前关闭不需要的功能模块的时钟CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER3,DISABLE);CLK_PeripheralClockConfig(C