OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8859|回复: 7

stm8L101进入halt模式引脚电平会不会变化

[复制链接]

14

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2014-11-26
在线时间
10 小时
发表于 2015-1-9 13:33:48 | 显示全部楼层 |阅读模式
5金钱
如题:不知道有没有人测试过stm8l101单片机halt模式,因为手头上没有stm8L101,所以我不知道单片机进入halt模式后引脚电平会不会维持原来那样的高低电平。像stm32,进入睡眠后,引脚电平都会变化,貌似所以引脚都编程开漏了。这是数据手册上说的,感觉说的也是不明不白Halt mode: CPU and peripheral clocks are stopped, the device remains powered on. The RAM content is preserved. Wakeup is triggered by an external interrupt

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

65

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2014-10-31
在线时间
8 小时
发表于 2015-1-9 14:02:17 | 显示全部楼层
这段文字不是说的挺明白么,halt模式,CPU时钟和外设时钟都会停止,设备保持与正常模式一样,ram内容会保存,通过一个外部中断触发唤醒。反正我用过几款引脚电平都不会变化的,怎么可能都会是开漏的呢,你自己实测一下就可以了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2015-1-9 23:26:08 | 显示全部楼层
帮顶....
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-1-17
在线时间
0 小时
发表于 2015-1-28 15:45:31 | 显示全部楼层
帮顶  等待大神
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-1-17
在线时间
0 小时
发表于 2015-1-28 15:49:37 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
原子哥  问下STM8L101 进入active-halt 模式   执行halt();语句   一直卡在这一句  无法自动唤醒了  求指点一下 
我用的是IAR编译器
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2015-1-28 22:46:40 | 显示全部楼层
回复【5楼】剑影~:
---------------------------------
我不懂哦,帮不到你,不好意思.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2016-2-3
在线时间
5 小时
发表于 2016-2-3 15:46:18 | 显示全部楼层
我刚刚测试了一下但是我用的是STM8L052C6这个型号,如果你卡在这里可能是没有设置好唤醒中断,IAR + STlink 如果你是在仿真模式下会提醒Wed Feb 03, 2016 15:43:41: Failed to stop target: gdi-error [40412]: Abort command is not possible in current CPU state (HALT, WFI or Protected code execution) 。
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2016-2-3
在线时间
5 小时
发表于 2016-2-3 15:51:17 | 显示全部楼层
这是我用的RTC周期性唤醒代码
//RTC初始化
void RTC_Init(U16 time)
{
  CLK_PCKENR2 = 0x04; //使能RTC时钟
  CLK_CRTCR = 0x04;  //时钟不分频38KHZ LSI为RTC时钟 26.31us
  
  //解除RTC写保护
  RTC_WPR = 0xCA;
  RTC_WPR = 0x53;
  RTC_CR1 = 0x00; //唤醒周期选择 RTCCLK/16 clock is selected 即38KHz/16 = 2375Hz  0.421ms
  RTC_CR2 &= ~0x04; //Wakeup timer disable
  while(RTC_ISR1_WUTWF == 0); //等待写改变完成
  RTC_WUTRH = (U8)(time>>8);
  RTC_WUTRL = (U8)time;
  RTC_CR2 =0x44; //使能唤醒计数器并开启计数器中断
}

//RTC中断
#pragma vector = RTC_WAKEUP_vector
__interrupt void RtcWakeup(void)
{
  ReSetWakeup(2375);//重新设置唤醒时间1S 2375*0.421 = 999.875ms
  RTC_ISR2 = 0; //清零周期唤醒标志
}

//重设RTC唤醒时
void ReSetWakeup(U16 nMS)        // mS
{
// nMS = 18999* ((U32)nMS) / 1000L;
  RTC_WPR = 0xCA;
  RTC_WPR = 0x53;
  RTC_CR2 = 0;
  while(RTC_ISR1_WUTWF == 0);
  RTC_WUTRH = (U8)(nMS>>8);
  RTC_WUTRL = (U8)nMS;
  RTC_CR2 = 0x44;
  RTC_WPR = 0;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-5 05:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表