STM8L151C8单片机学习例程(10)——WFE

发布者:温暖拥抱最新更新时间:2022-01-06 来源: eefocus关键字:单片机  WFE 手机看文章 扫描二维码
随时随地手机看文章

STM8L_10_WFE

1.User:工程及main文件

2.Hardware:EXIT,RTC,CLK,LED,Delay

3.STM8L15x_StdPeriph_Driver:STM8自带库文件

4.Debug:hex文件存放于EXE文件夹

5.Function:    WFE低功耗测试

WFE是wait for event等待事件发生,CPU停止,选中的外设继续进行。下面是电流测试结果图(3.3V供电)。

/**

******************************************************************************

*   @file      main.c

*   @author    Alex——小白

*   @version   V1.0

*   @date      2019.5.1

*   @brief     ADC_Vrefint采集,串口发送电源电压值

*   @store     有家Proteus仿真店子

*   @Link      https://shop484534014.taobao.com/

*   @Email     844545015@qq.com

******************************************************************************

*   @attention  All Rights Reserved  

*   @note       V=1.218*4095/ADCData,读取8次后取平均数来提高精度

**/


#include "stm8l15x.h"

#include "stm8l15x_pwr.h"

#include "stm8l15x_gpio.h"

#include "stm8l15x_clk.h"

#include "stm8l15x_wfe.h"

#include "LED.h"

#include "Delay.h"

#include "CLK.h"

#include "EXIT.h"


void Low_Power_init(void)

{

    CLK_RTCClockConfig(CLK_RTCCLKSource_LSE, CLK_RTCCLKDiv_1);  //外部低速晶振LSE,精准

      /* Wait for LSE clock to be ready */

    while (CLK_GetFlagStatus(CLK_FLAG_LSERDY) == RESET);

    CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);      //RTC时钟使能

    RTC_WakeUpClockConfig(RTC_WakeUpClock_CK_SPRE_16bits);          

    RTC_ITConfig(RTC_IT_WUT, ENABLE);

    RTC_SetWakeUpCounter(10); 

    RTC_WakeUpCmd(ENABLE);    

    PWR_UltraLowPowerCmd(ENABLE);                               //开启超低功耗

     

    GPIO_Init(GPIOA, GPIO_Pin_All, GPIO_Mode_In_PU_No_IT);

    GPIO_Init(GPIOB, GPIO_Pin_All, GPIO_Mode_In_PU_No_IT);

    GPIO_Init(GPIOC, GPIO_Pin_All, GPIO_Mode_In_PU_No_IT);

    GPIO_Init(GPIOD, GPIO_Pin_All, GPIO_Mode_In_PU_No_IT);

    GPIO_Init(GPIOE, GPIO_Pin_All, GPIO_Mode_In_PU_No_IT);

    GPIO_Init(GPIOF, GPIO_Pin_0  , GPIO_Mode_In_PU_No_IT);    

    GPIO_Init(GPIOC, GPIO_Pin_0, GPIO_Mode_Out_OD_Low_Slow);

    GPIO_Init(GPIOC, GPIO_Pin_1, GPIO_Mode_Out_OD_Low_Slow);


}


void main(void)

{        

    CLK_LSE_Config(CLK_SYSCLKDiv_1);//LSE 1分频 32.768KHz   

    Low_Power_init();

//    EXIT_Init();

    LED_Init();

    

    WFE_DeInit();

    WFE_WakeUpSourceEventCmd(WFE_Source_RTC_CSS_EV, ENABLE);   

//    WFE_WakeUpSourceEventCmd(WFE_Source_EXTI_EV3, ENABLE);

    //选择按键外部中断-WFE_Source_EXTI_EV3 /RTC-WFE_Source_RTC_CSS_EV 作为触发事件

     

    while(1)

    {         

//        EXTI_ClearITPendingBit(EXTI_IT_Pin3);     //外部中断触发

//        LED0(0);

//        Delay(0x0FFF);

//        LED0(1);

        

        RTC_ClearITPendingBit(RTC_IT_WUT);

        LED1(0);

        Delay(0x0FFF);

        LED1(1);               

        wfe();

    }

}

关键字:单片机  WFE 引用地址:STM8L151C8单片机学习例程(10)——WFE

上一篇:STM8L151C8单片机学习例程(11)——HALT
下一篇:STM8L151C8单片机学习例程(8)——内部参考电压ADC_Vrefint采集电源电压

推荐阅读最新更新时间:2024-11-13 04:11

avr单片机编程的c语言问题总结
  这两天在用AVR单片机做项目,这次是边做边深入学,尽量将以前忽略的知识用上,比如指针、文件包含、条件编译、变量作用域等一一调研清楚。收获不少,再次体会到学习的过程中没有无用的地方。用的越深入,才发现学时以为没用的东西都是最有用的,因为都被忽略了。幸亏学习时候的最重要的《c程序设计》还在,全能解决,所以遇到问题就问“谭浩强”。如果不能解决,就找编译器的问题。这是这段时间总结的经验。 一、函数指针 1.int (*func)(void)--基本函数指针变量定义方式,变量func是一个指向返回值为int,没有参数的函数指针,这与其他变量定义有点区别,一般是把变量名放最后,如int a,而函数指针比较不直观, 2.typedef
[单片机]
如何将51单片机进行内存优化
对51单片机内存的认识,很多人有误解,最常见的是以下两种 ① 超过变量128后必须使用compact模式编译 实际的情况是只要内存占用量不超过 256.0 就可以用 small 模式编译 ② 128以上的某些地址为特殊寄存器使用,不能给程序用 与 PC机不同,51单片机不使用线性编址,特殊寄存器与 RAM 使用重复的重复的地址。但访问时采用不同的指令,所以并不会占用 RAM 空间。 由于内存比较小,一般要进行内存优化,尽量提高内存的使用效率。 以 Keil C 编译器为例,small 模式下未指存储类型的变量默认为data型,即直接寻址,只能访问低 128 个字节,但这 128 个字节也不是全为我们的程序所用,寄存器 R0-R7必
[单片机]
基于ATmega8单片机多功能实验仪设计解决方案
由于嵌入式系统应用技术的不断发展,对于核心处理器性能的要求越来越高,一些传统的51系列控制芯片已经难以胜任许多复杂的任务。因此,我们通过调研分析,自行开发了一套基于ATmega8高性能系列单片机的实验开发系统。ATMEL公司的ATmegs8单片机是一种具有独特结构的8-bit RISC CPU,其在线自编程Flash和单时钟指令,为C语言、Basic语言优化的指令系统设置,以及丰富的片载外围接口电路,使功能强大的ATmegs8单片机成为一款高度灵活和高性价比的芯片,为许多高端嵌入式系统设计提供了优秀的解决方案。 1 系统总体设计 单片机多功能实验仪硬件的总体设计原理框图如图l所示: 单片机实验开发应用系统中ATmega8
[单片机]
基于ATmega8<font color='red'>单片机</font>多功能实验仪设计解决方案
瑞萨电子MCU和MPU产品线将支持Microsoft Visual Studio Code
客户现可以在VS Code中设计和调试瑞萨嵌入式处理器的软件,与瑞萨自有e2 Studio IDE相辅相成 2023 年 8 月 1 日,中国北京讯 - 全球半导体解决方案供应商瑞萨电子今日宣布其客户现可以使用Microsoft® Visual Studio Code(VS Code)开发瑞萨全系列微控制器(MCU)和微处理器(MPU) 。瑞萨已为其所有嵌入式处理器开发了工具扩展,并将其发布在Microsoft VS Code网站上,使习惯于使用这款流行的集成开发环境(IDE)和代码编辑器的大量设计师能够在他们熟悉的开发环境中工作。 VS Code IDE简化并加速了跨多种平台和操作系统的代码编辑。 通过提供对VS
[单片机]
瑞萨电子<font color='red'>MCU</font>和MPU产品线将支持Microsoft Visual Studio Code
基于单片机的高精度智能交直流电压数据采集系统设计
电压是电子与电力系统中最基本的测量元素之一,快速准确地获取电压值一直是数据采集与电子测量仪器研究的重要内容之一。传统的指针式电压表具有精度低、可视距离近、功能单一等缺陷,已不适应高速信息化的发展需要。目前市场上广泛使用的数字电压表智能化程度低,测量电压时需手动切换量程,当量程选择不当时会出现测量精度下降、乃至烧坏电压表的极端情况; 而高精度的全量程无档数字电压表一般都采用了DSP、FPGA或CPLD等复杂电路系统, 硬件和软件实现成本较高。为此,笔者设计研制出了一种以单片机为控制主体的智能交流直流电压数据采集系统,具有体积小、精度高、结构简单、使用与读数方便、性价比高、适应范围宽等优点,有效地弥补了上述各种电压表系统的缺点和弊端。
[电源管理]
基于<font color='red'>单片机</font>的高精度智能交直流电压数据采集系统设计
单片机定时器T0和P1.7端口产生连续矩形脉冲的程序
已知51单片机,fosc=6MHz,试编写程序,利用T0和P1.7产生如下图所示的连续矩形脉冲。 参考程序: org 0000h ljmp main org 000bh ljmp int_t0 org 0030h main: mov tmod,#00000010b mov ie,#10000010b mov th0,#0ech mov tl0,#4ch clr p1.7 setb tr0 sjmp $ int_t0: jb p1.7,loop
[单片机]
用<font color='red'>单片机</font>定时器T0和P1.7端口产生连续矩形脉冲的程序
51单片机如何扩展外部端口
我们知道 51单片机本身是没有pwm接口的,这个程序是通过软件模拟pwm.在一定的频率的方波中,调整高电平和低电平的占空比,即可实现LED灯亮度控制。           要用51产生PWM去控制LED,首先要确定PWM的周期T和占空比D,确定了这些以后,可以用定时器产生一个时间基准t,比如定时器溢出n次的时间是PWM的高电平的时间,则D*T=n*t,类似的可以求出PWM低电平时间需要多少个时间基准n'。 那么就可以编写程序,根据定的时间基准t给定时器赋值初始化,然后开启定时器,定义一个标志位flag,根据flag的状态决定输出高平还是低电平,假设定义flag=1的时候输出高电平,用一个变量去记录定时器中断的次数,每次中断就让记
[单片机]
机器人常用的单片机使用经验(一)
一 学习单片机的捷径是什么? 所谓捷径就是少走弯路。我刚开始学单片机时走了不少弯路,很多朋友和我都有相似的经历,刚开始接触 单片机 ,面对琳琅满目的图书教材,不知选择哪本;想实践时不知到哪买单片机;不知如何编程下载程序…… A 对于初学者仔细看本文就是学习单片机的捷径之一。 B 到图书馆或者书店在数十本单片机书中选一本你能看懂,而且觉得案例有趣的“实在、生动、活泼”的单片机书做为你的入门读物。 C 建议先从51单片机学起。掌握51后再学AVR,然后学ARM、DSP等。 D 在学习过程中实践非常必要。你需要一台电脑。如果是台式电脑,你可以花十几元购买25针并口下载线,如果是笔记本电脑,你只能购买几十元到几百
[模拟电子]
机器人常用的<font color='red'>单片机</font>使用经验(一)
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved