您的位置 首页 方案

STM8L探究套件学习笔记-低功耗形式(十二)

官方给的例程当中,使用PE6作为IDD_WAKUP,将系统从低功耗中唤醒,STM8L有5种低功耗模式,降低功耗的方法还可以将系统时钟降低或者关闭没有

官方给的例程傍边,运用PE6作为IDD_WAKUP,将体系从低功耗中唤醒,
STM8L有5种低功耗形式,下降功耗的办法还可以将体系时钟下降或许封闭没有运用的外设。

今日咱们就运用U3这个14阶脉动进位计数器M74HC4060进行HALT形式唤醒,从原理图可以看到Q14脚输出的反向连接到T2模仿开关,操控PE6端口。由于通过两个反向器,运用Q14的逻辑等于PE6的逻辑。U3的时钟频率为30KHZ,Q14的脉冲周期为2的14次方除以30KHZ,约等于0.5s,也就是说Q14输出的脉冲是周期大约为1秒,占空比为1:1的方波。所以PE6的电平改变也是周期大约为1秒,占空比为1:1的方波。代码规划如下:
void main(void)
{
GPIO_Init(LED3_PORT,LED3_PIN,GPIO_Mode_Out_PP_High_Fast);
//输出低电平-高速10M
GPIO_Init(LED4_PORT,LED4_PIN,GPIO_Mode_Out_PP_High_Fast);
//输出低电平-高速10M
GPIO_Init(CNT_EN_PORT,CNT_EN_PIN,GPIO_Mode_Out_PP_High_Fast);
GPIO_Init(WAKEUP_PORT,WAKEUP_PIN,GPIO_Mode_In_FL_IT);//PE6
LCD_GLASS_Init();
LCD_GLASS_DisplayString(“M74HC”);
/* Enable Rising edge port PE6 for wake up conter */
//EXTI->CR2 = 0x10;
//上升沿或许下载沿都可以
EXTI_SetPinSensitivity(EXTI_Pin_6, EXTI_Trigger_Rising);
/* Enable Interrupts */

enableInterrupts();
GPIO_ResetBits(GPIOC,GPIO_Pin_4);//使能U3计数器
/* Infinite loop */
while (1)
{
GPIO_ToggleBits(LED3_PORT,LED3_PIN);

halt();//进入HALT形式,外部中止可以唤醒
}
}
程序开端初始化板上的LED3/LED4,LCD显现测验M74HC计数器的功用。PE6为上升沿触发。进入while后,进入HALT形式,CPU封闭,将不会履行。只有当外部中止发生后才干履行。
中止函数:
INTERRUPT_HANDLER(EXTI6_IRQHandler, 14)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
sim()
GPIO_ToggleBits(GPIOC,GPIO_Pin_7);
/* Clear Interrupt pending bit */
EXTI_ClearITPendingBit(EXTI_IT_Pin6);
rim()
}
现象是板上的LED3和4替换,周期1s闪耀,阐明CPU在HALT形式和作业形式替换进行。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/260266.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部