OpenEdv-开源电子网

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

复位寄存器的作用是什么?

[复制链接]

102

主题

318

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1876
金钱
1876
注册时间
2011-12-21
在线时间
545 小时
发表于 2012-3-23 16:23:35 | 显示全部楼层 |阅读模式
STM32 有些复位寄存器 比如


我想知道这个复位寄存器的作用是什么?如果是恢复到默认的值的话,为什么要在设置ADC寄存器以后才复位?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-3-23 16:33:44 | 显示全部楼层
大哥,你也搞个大点的图片啊....这鸟图谁看得清?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

20

主题

562

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
670
金钱
670
注册时间
2012-2-28
在线时间
0 小时
发表于 2012-3-23 16:46:20 | 显示全部楼层
这个应该是RCC中的复位吧,在设置ADC之后,你要用ADC,打开时钟之后,第一步就是复位ADC,怎么了,这样可以减少误差啊
努力,前进。
回复 支持 反对

使用道具 举报

102

主题

318

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1876
金钱
1876
注册时间
2011-12-21
在线时间
545 小时
 楼主| 发表于 2012-3-23 17:01:43 | 显示全部楼层
ok 寄存器的位置:



既然设置过RCC以后复位生效,那为什么原子哥的程序先设置RCC然后复位然后继续设置RCC呢?
原子哥的程序:




回复 支持 反对

使用道具 举报

20

主题

562

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
670
金钱
670
注册时间
2012-2-28
在线时间
0 小时
发表于 2012-3-23 17:04:40 | 显示全部楼层
那是设置ADC时钟的复位的,只是RCC中的一个功能,不会干扰RCC的,只是针对ADC而已
努力,前进。
回复 支持 反对

使用道具 举报

102

主题

318

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1876
金钱
1876
注册时间
2011-12-21
在线时间
545 小时
 楼主| 发表于 2012-3-23 17:07:45 | 显示全部楼层
回复【5楼】5498折戟沉沙:
---------------------------------
哪些需要复位?是不是像这样的外设时钟都需要复位生效?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-3-23 17:43:33 | 显示全部楼层
你要先使能时钟才能复位吧?
时钟又不会因为复位而关闭.
搞清楚对象,就不会这么多问题了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

102

主题

318

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1876
金钱
1876
注册时间
2011-12-21
在线时间
545 小时
 楼主| 发表于 2012-3-23 18:24:17 | 显示全部楼层
恩恩...谢
回复 支持 反对

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1852
金钱
1852
注册时间
2012-9-16
在线时间
287 小时
发表于 2012-11-17 17:16:54 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
呵呵,今天刚看到!
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
回复 支持 反对

使用道具 举报

0

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2013-9-27
在线时间
0 小时
发表于 2013-9-27 08:08:56 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
RCC->APB2ENR|=1<<2//使能PORTA口时钟,
为什么没有对PORTA口时钟的复位呢?即没有RCC->APB2RSTR|=1<<2呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-27 10:52:57 | 显示全部楼层
回复【10楼】Evil_Defender:
---------------------------------
你喜欢也可以加上。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2013-9-27
在线时间
0 小时
发表于 2013-9-27 20:37:54 | 显示全部楼层
回复【11楼】正点原子:
---------------------------------
外设时钟是先使能还是先复位?即,先操作RCC_APBxENR后操作RCC_APBxRSTR,还是,先操作RCC_APBxRSTR后操作RCC_APBxENR?能不能以USART1或者其他外设为例做个说明?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-27 23:21:03 | 显示全部楼层
先使能,再复位
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2012-7-20
在线时间
9 小时
发表于 2015-4-6 21:57:50 | 显示全部楼层
回复【13楼】正点原子:
---------------------------------
复位寄存器的作用究竟是指什么意思? 比如复位DAC接口,一旦设置了DACRST=1,那么是不是意味着之前对DAC的种种不同于默认值的“参数设置”全都恢复为上电后的“默认参数”?
如果是这个意思的话,那么我如果对PWRRST复位,即设置PWRRST=1,那么是不是指软件进行一次上电复位操作?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-4-7 00:14:45 | 显示全部楼层
回复【14楼】winter1970:
---------------------------------
对,就是让所有的该功能相关寄存器恢复复位状态。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2016-9-8
在线时间
8 小时
发表于 2016-9-10 11:51:24 | 显示全部楼层
正点原子 发表于 2015-4-7 00:14
回复【14楼】winter1970:
---------------------------------
对,就是让所有的该功能相关寄存器恢复复位状 ...

RCC的所有外设复位寄存器的作用如果是复位该外设的所有相关寄存器;那么
先使能,再复位,会不会把刚刚使能位也复位了???
回复 支持 反对

使用道具 举报

8

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2012-7-20
在线时间
9 小时
发表于 2017-4-7 23:17:55 | 显示全部楼层
hnjzwht 发表于 2016-9-10 11:51
RCC的所有外设复位寄存器的作用如果是复位该外设的所有相关寄存器;那么
先使能,再复位,会不会把刚刚 ...

以ADC3接口为例,RCC_APB2ENR寄存器中的ADC3EN位=1时,表示使能了ADC3接口,上电默认值为0,即关闭ADC3接口;
然后到RCC_APB2RSTR寄存器中,设置ADC3RST=1,表示复位ADC3接口,这里的复位应该是指ADC3接口相关的一些参数设定被复位到初始化状态(具体我也不明白)应该不是指也复位了ADC3EN位。
所以,不会出现你说的情况。
如果ADC3RST一直等于1,那么复位一直在进行,想要结束复位过程,必须软件来清零ADC3RST位,文档中的意思是“无作用”,英文文档中的描述是“No effect”。本来的意思应该是指:停止正在进行的复位操作。感觉文档这里的描述写的很模糊,初次学习很容易被欺骗。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-22 08:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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