小白向大家求助一个问题,谢谢大家

2019-07-20 08:28发布

QQ图片20180422230917.png
这里为什么不能将ccr换成QUADSPI->CCR直接操作寄存器啊,而是要定义一个变量来间接操作,谢谢大家。刚注册的号,没有多少金币,还望大家见谅。。。。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
ssssssssssss
1楼-- · 2019-07-21 07:09
 精彩回答 2  元偷偷看……
TCX
2楼-- · 2019-07-21 07:47
通过定义一个 ccr变量,将ccr的值配置为你想要对应寄存器的值后,一次性赋值QUADSPI->CCR寄存器并且立即生效,只有一次!而如果你分成n次去赋值这个寄存器的话,每一次赋值时,你其实只想单独改变其中一个位,但实际上其余31个位也同时被修改成你不想要的结果(因为STM32不是51单片机,而这时该寄存器的配置已经生效),自然达不到想要的结果;因此要通过一个变量将所有的寄存器位都配置为你想要的值后再赋值给寄存器;当然啦,STM32有一种操作,叫做位带操作,可以实现类似51单片机的位操作的功能,而不会影响技巧寄存器的其他位,楼主可以去了解一下;个人见解!
jjdkq
3楼-- · 2019-07-21 13:38
 精彩回答 2  元偷偷看……
TCX
4楼-- · 2019-07-21 18:37
jjdkq 发表于 2018-4-23 21:55
谢谢解答!那为什么别的寄存器可以直接操作呢?之前的实验也是,几乎所有实验的寄存器都可以直接操作,只 ...

具体问题具体分析,别的寄存器也许没有问题,但是并不代表所有的没问题,寄存器该通过什么方法去配置 还得看寄存器各个位的具体功能定义
jjdkq
5楼-- · 2019-07-21 22:17
正点原子 发表于 2018-4-23 09:58
有的寄存器需要一次性设置。有的可以单独设置。
这是看具体的外设的。

谢谢原子哥!看来具体问题要具体分析,我是有点钻牛角尖了

一周热门 更多>