OpenEdv-开源电子网

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

请问STM32F103里的BRR寄存器为什么被称为16位寄存器?

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2019-5-21
在线时间
10 小时
发表于 2019-5-21 21:08:29 | 显示全部楼层 |阅读模式
1金钱
最近发现好多的资料上将BRR寄存器称之为【一个16位寄存器BRR】。包括一些课件一些资料。例如原子哥的《STM32F1开发指南-库函数版本_V3.1 》也是这么描述的。而对于同样是高16位保留只有低16位有效的ODR寄存器却称之为【32位寄存器】。
TIM截图20190521205234.png
我查看了《STM32中文参考手册_V10》和《STM32英文参考手册_V15》发现里面并没有就这个问题进行说明。
TIM截图20190521205541.png
TIM截图20190521205623.png
对此我有两个猜测:
① 由于BRR寄存器的功能与BSRR高16位相同,是不是BRR寄存器其实在【物理设计】上其实就是BSRR的高16位。只是由于为了方便使用,【逻辑上】将其又映射到一个地址上。
②笔误?(我觉得这个不大可能,毕竟不是一个资料上这样讲的)

请各位大佬解答一下,这是我们导师问我的。。。

最佳答案

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

至于你们导师无聊的问题,你直接告诉他因为该寄存器高半字没有定义,物理上该寄存器只有16位端口与CPU总线的低半字连接,CPU总线的高半字处于悬空状态。所以该寄存器就是16位的。至于内部真实结构,简单推测就好了,你说的可能对,也可能不对。毕竟咱谁都不是STM32的工程师,怎么会知道呢?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
439
金钱
439
注册时间
2018-12-21
在线时间
126 小时
发表于 2019-5-21 21:08:30 | 显示全部楼层
至于你们导师无聊的问题,你直接告诉他因为该寄存器高半字没有定义,物理上该寄存器只有16位端口与CPU总线的低半字连接,CPU总线的高半字处于悬空状态。所以该寄存器就是16位的。至于内部真实结构,简单推测就好了,你说的可能对,也可能不对。毕竟咱谁都不是STM32的工程师,怎么会知道呢?
回复

使用道具 举报

10

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2016-9-15
在线时间
48 小时
发表于 2019-5-21 21:32:05 | 显示全部楼层






回复

使用道具 举报

8

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
439
金钱
439
注册时间
2018-12-21
在线时间
126 小时
发表于 2019-5-21 22:59:48 | 显示全部楼层
你还是too young啊,问的问题都too simple啊,sometimes naive!
你告诉我,16-31位写着啥?保留看得到吗,Reserve看到没?高16位完全没有定义你说不是16位是啥?一个称谓而已不要操心,你只要记住高半字没有用就行了。实际使用时也就按照32位寄存器访问,手册写着呢,只能字模式访问,高半字随便啥内容都行,只要低半字是你要的结果。如果使用半字或字节访问,就会触发Hand_Fault异常。这就是实际要操心的。
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2019-5-21
在线时间
10 小时
 楼主| 发表于 2019-5-22 00:43:33 | 显示全部楼层
0x00000000 发表于 2019-5-21 22:59
你还是too young啊,问的问题都too simple啊,sometimes naive!
你告诉我,16-31位写着啥?保留看得到吗 ...

感谢~其实也是,毕竟会用就好,官方到底怎么设计的也无从知晓。F4都没有BRR这个寄存器了
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4521
金钱
4521
注册时间
2018-5-11
在线时间
946 小时
发表于 2019-5-22 10:29:01 | 显示全部楼层
对于资料我也曾经有过疑问,
手册上还写着ODR和IDR寄存器只能按字访问,是不是不能只修改单个BIT呢?
但是我们常用的位段操作PAout(3)或PAin(3)却可以按BIT位访问,
后来才想到,它指的是如果读写该寄存器必须以32位的字模式,整字读出,修改再整字写回。
但位段操作读写的并不是该寄存器,而是其某一BIT位所映射的别名存储器。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

37

主题

596

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1574
金钱
1574
注册时间
2017-7-17
在线时间
308 小时
发表于 2019-5-22 23:13:13 | 显示全部楼层
32里面所有的寄存器都是32位的,不能说高16位Reserved就是16位寄存器,参考手册也有错误的地方。至于保留的高16位为什么不能用,保留是怎么实现的,数字电路学过吧,方法多着呢,人家就是不给你用呗。
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2019-5-22
在线时间
1 小时
发表于 2019-5-23 09:26:33 | 显示全部楼层
学习学习
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 09:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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