STM8S105的低功耗模式总的来说有四种:分别是等待模式,停机模式,快速活跃停机模式和慢速活跃停机模式
1、等待模式:可执行指令wif()进入等待模式,该模式下主CPU停止工作,但其外设不停,严格来说只能算是降低功耗而不能算低功耗,该模式可由AMU或外部中断唤醒
2、停机模式:可执行指令half()进入停机模式,该模式下主cpu和外设全部停止,达到最低功耗,只能由外部中断进行唤醒。
3、快速活跃停机模式:在执行指令half()之前,如果你使能了AMU功能,则进入快速活跃停机模式,该模式下由于主电压调节器打开,在受到AMU或外部中断触发时,可快速唤醒。
4、慢速活跃停机模式:在快速活跃停机模式下,如果设置内部时钟寄存器CLK_ICKR的REGAH位清零。则进入慢速活跃停机模式,该模式主电压调节器关闭,MCU内核由低功耗电压调节器(LPVR)供电,唤醒时间相对较长。
STM8的几种低功耗分析就到这里,最后附上AMU配置步骤:
关键字:STM8S 低功耗模式 等待模式
引用地址:
简单介绍下关于STM8S的几种低功耗模式
推荐阅读最新更新时间:2024-11-13 00:24
stm8s开发(三) UART的使用:串口通信
串口通信是单片机学习的一个最基本、最重要的功能之一。串口通信可以间接的当做调试接口使用,实现单片机与电脑之间的通信。当然可以与一些模块(比如蓝牙、wifi)通信,也可以作为和其他单片机通信的工具。 STM8S的通用异步收发器(UART)主要特性: ● 全双工的,异步通信 ● 可编程数据字长度(8位或9位) ● 可配置的停止位-支持1或2个停止位 一般的,我们使用串口通信主要是关心几点参数:波特率、停止位、奇偶校验位。 其次就是如何发送、如何接收数据,这里介绍的使用阻塞式发送数据、中断方式接收数据。 以下代码是初始化串口,参数为:115200 1停止位 无校验位 void Init_UART1(v
[单片机]
IAR编译STM8S 中的脚位操作对库函数的一点修改
IAR编译STM8S 自带的库函数都知道,IO口中有个每局定义如下: typedef enum { GPIO_PIN_0 = ((u8)0x01), /*! Pin 0 selected */ GPIO_PIN_1 = ((u8)0x02), /*! Pin 1 selected */ GPIO_PIN_2 = ((u8)0x04), /*! Pin 2 selected */ GPIO_PIN_3 = ((u8)0x08), /*! Pin 3 selected */ GPIO_PIN_4 = ((u8)0x10), /*! Pin 4 selected */ GPIO_PIN_5 = ((u8
[单片机]
STM8S的按键PWM调光灯历程
STM8SPWM应用 前几天有个项目用到PWM,今天整理下,弄个氛围灯;记录下,以后忘记了返回来还能看看。 思路就是在硬件端设置个按键,按下全局变量Key_num的值+1,按键一开始我用轮询法做的,后来觉得轮询法延时可能导致未知的问题,现在用中断法做;根据Key_num的值,用switch语句选择要变换的模样。 上代码: /***************************************************************************** * @function : Tim2_Init * @brief : TIM2初始化函数 CH1用作出LED——G的呼吸变化灯 *
[单片机]
STM8S使用外部时钟引起串口数据传输错误
最近有个小东西用到STM8S来驱动,之前用STM8S使用的是内部自带的16MHz RC时钟,尚未尝试过使用外部晶振作为主时钟。今天记录一下使用外部晶振时遇到的一个问题。 老规矩,在进行程序设计时,首先初始化时钟,本次使用的是STM8S103F3P6芯片,8MHz的外部晶振,为了方便内外部时钟切换,结合资料写了两个切换函数 /*********************************************** *描述:采用内部16MHz的RC时钟为主时钟 * 初始化时钟为1分频 16M,无外部晶振 *版本:V1.0 *作者: *********************************************
[单片机]
STM32 DMA正常模式等待传输完成和开始下一次传输
选择DMA的正常模式,即DMA只传输一次。如果当传输完一次后,还想再传输一次,就需要重启DMA: DMA_Cmd(DMA1_Channel6,DISABLE); 重新设置源地址 重新设置目的地址 重设传输数量 DMA_Cmd(DMA1_Channel6,ENABLE); 因此建议把DMA_InitStructure定义为全局变量,然后可以使用下面语句来重启DMA: DMA_Cmd (DMA1_Channel4,DISABLE); DMA_Init(DMA1_Channel4, &DMA_InitStructure); DMA_Cmd (DMA1_Channel4,ENABLE); 刚发现只需要重新设置传输数据长度就可以
[单片机]
超低功耗研发-STM32L151C8T6芯片(二)低功耗模式
默认情况下,系统复位后,控制器运行在RUN模式,在RUN模式下,CPU的时钟是由HCLK提供,如果CPU不需要一直保持运行 状态,是可以设置控制器为其他几种低功耗模式,比如,当控制器需要等待一个 外部中断事件时。这取决于用户选择合适的工作模式。 该芯片具有5中低功耗模式: ① 低功耗运行模式:低功耗运行模式:适配器处于低电压模式,时钟频率限制在低频,部分外围的使用也受限。 ② 睡眠模式:Cortex-M3内核停止,外围器件保持运行状态,比如RTC一直运行。 ③ 低功耗睡眠模式:Cortex-M3内核停止,时钟频率受限(降频),部分外围运行,电源适配器处于低功耗模式,RAM断电,Flash停止。
[单片机]
STM32开发 -- 低功耗模式详解(2)
简单的总结了一下低功耗的三种模式。 但是还留了不少问题需要搞清楚。 接下来继续总结。。 一、其他几种退出待机模式的方法: 上篇文章只介绍了通过WKUP引脚上的上升沿退出待机模式。接下来再看一下剩下的RTC闹钟事件的上升沿、 NRST引脚上外部复位、 IWDG复位该如何操作呢? RTC闹钟事件的上升沿 RTC部分之前是有讲过的: 参看:STM32开发 – RTC详解 参看:STM32开发 – 时钟系统详解 参看:STM32开发 – Systick定时器 软件实现: 参看:stm32f103的RTC作为闹钟唤醒单片机待机模式RTC_Alarm.rar 或者 百度网盘下载 ●RTC中断配置 static void R
[单片机]
stm8s使用问题总结2——AD转换
最近在进行stm8s003MCU的嵌入式开发,因为其中要进行电压采集,所以学习了下该MCU的ADC模块。之前自己也开发过NXP cortex-M3的MCU,但是之前主要是在前人的基础上进行的开发,所以对ADC其实没有很深刻的认识。接下来介绍下这几天的收获。 一、stm8系列MCU的ADC支持5种转换模式:单次模式,连续模式,带缓存的连续模式,单次扫描模式,连续扫描模式。 单次模式 在STM8的ADC单次转换模式中,ADC仅在由ADC_CSR寄存器的CH 选定的通道上完成一次转换。该模式是在当CONT位为0时通过置位ADC_CR1寄存器的ADON位来启动的。 一旦转换完成,转换后的数据存储在ADC_DR寄存器中,EO
[单片机]