stm32休眠后可以通过串口唤醒吗?

[复制链接]
10544|5
手机看帖
扫描二维码
随时随地手机跟帖
dorice|  楼主 | 2008-8-20 16:00 | 显示全部楼层 |阅读模式
RT。还没弄过休眠……
香水城| | 2008-8-20 17:36 | 显示全部楼层

STM32有好几种省电模式,有些可以有些不可以

请参考STM32技术参考手册。

使用特权

评论回复
ijk| | 2008-8-21 10:14 | 显示全部楼层

STOP模式可以唤醒

  如果没有记错,STOP模式下可以通过串口唤醒

使用特权

评论回复
wudingzhiying| | 2012-2-21 21:52 | 显示全部楼层
2# 香水城
你好,我想请问一下关于stm32睡眠唤醒的事情。。。手册上说睡眠是可以用任何一个中断唤醒的,那么我想着应该包括ADC和串口,但是我把这两个都试过,板子还是不动啊。
我首先是在程序开始RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);   然后PWR_DeInit();
PWR_BackupAccessCmd(DISABLE);
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
SCB->SCR |= SCB_SCR_SLEEPDEEP;
__WFI();
  SCB->SCR &= (uint32_t)~((uint32_t)SCB_SCR_SLEEPDEEP);

之后就是while循环,在里面循环点亮LED灯作为唤醒的指示。但是这样的话程序就不进入while循环中,屏幕上什么也没有变化。。。如果吧上面的_WFI注释掉,就能正常执行,请问这是什么原因呢?我用的中断语句是下面的这些:
void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);   //选择中断分组0
  NVIC_InitStructure.NVIC_IRQChannel = ADC1_IRQn;   //选择串口1中断        /*3.4的库不是使用USART1_IRQChannel,看stm32f10x.h吧*/
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;      //抢占式中断优先级设置为0
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;       //响应式中断优先级设置为0
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;        //使能中断
  NVIC_Init(&NVIC_InitStructure);
}
请指导。。。谢谢

使用特权

评论回复
香水城| | 2012-2-22 10:01 | 显示全部楼层
2# 香水城  
你好,我想请问一下关于stm32睡眠唤醒的事情。。。手册上说睡眠是可以用任何一个中断唤醒的,那么我想着应该包括ADC和串口,但是我把这两个都试过,板子还是不动啊。
我首先是在程序开始RCC_APB1Periph ...
wudingzhiying 发表于 2012-2-21 21:52


请把你的问题单独开帖,不要同一个问题到处问。

使用特权

评论回复
wudingzhiying| | 2012-2-22 14:37 | 显示全部楼层
5# 香水城
谢谢提醒

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

13

帖子

1

粉丝