OpenEdv-开源电子网

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

单片机的休眠之后唤醒和重新上电有什么区别?

[复制链接]

138

主题

362

帖子

0

精华

高级会员

Rank: 4

积分
997
金钱
997
注册时间
2012-9-17
在线时间
29 小时
发表于 2015-11-10 10:46:30 | 显示全部楼层 |阅读模式
5金钱
问大家一个问题:STM32单片机的休眠之后唤醒和重新上电有什么区别么?
我现在做的项目,想要区别这二者之间的区别。 是不是有寄存器可以查询得到? 

最佳答案

查看完整内容[请看2#楼]

STM32不了解,但单片机休眠只是暂停运行了,内部的状态和RAM数据等还是保持的,唤醒时是从休眠的地方开始执行。而复位则不是,很状态会在复位的时候重新初始化了,RAM数据如果没有清零也是随机的数据了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

163

帖子

0

精华

高级会员

Rank: 4

积分
615
金钱
615
注册时间
2011-11-7
在线时间
180 小时
发表于 2015-11-10 10:46:31 | 显示全部楼层
STM32不了解,但单片机休眠只是暂停运行了,内部的状态和RAM数据等还是保持的,唤醒时是从休眠的地方开始执行。而复位则不是,很状态会在复位的时候重新初始化了,RAM数据如果没有清零也是随机的数据了
回复

使用道具 举报

9

主题

538

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3371
金钱
3371
注册时间
2015-1-7
在线时间
794 小时
发表于 2015-11-10 10:58:54 | 显示全部楼层
有寄存器可以查询,你可以查一下数据手册
机器生汇编,汇编生B,B生C,C生万物.... 经过长期对C语言的研究,目前只有两个方面不懂:这也不懂,那也不懂
https://github.com/ianhom
回复

使用道具 举报

138

主题

362

帖子

0

精华

高级会员

Rank: 4

积分
997
金钱
997
注册时间
2012-9-17
在线时间
29 小时
 楼主| 发表于 2015-11-10 17:11:03 | 显示全部楼层
我查询了一下数据手册,也知道了状态寄存器中确实有一个位是用于标识的,但是程序中却检测不到,是我程序有问题吗?





wake_or_power = PWR->CSR;
if(wake_or_power&0x00000001)
{
sprintf(buffer1,"Wake up\r\n");
USART1_Send_Data((u8*)buffer1,strlen(buffer1));   //发送到上位机
}
else 
{
sprintf(buffer1,"Power\r\n");
USART1_Send_Data((u8*)buffer1,strlen(buffer1));   //发送到上位机
}


这是我的程序,大家看看,有问题么?
回复

使用道具 举报

18

主题

422

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1139
金钱
1139
注册时间
2014-5-24
在线时间
116 小时
发表于 2015-11-10 17:44:42 | 显示全部楼层
按照你的需求,回答第3个问题:RCC->CSR,Bit 31
I See Fire.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.  只给方向,不妨碍思考
回复

使用道具 举报

138

主题

362

帖子

0

精华

高级会员

Rank: 4

积分
997
金钱
997
注册时间
2012-9-17
在线时间
29 小时
 楼主| 发表于 2015-11-10 20:09:49 | 显示全部楼层
回复【4楼】emWin:
---------------------------------
谢谢你,我明天试试看。那为什么我使用的那个标志位没有用呢?   我使用的不对么?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 20:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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