将寄存器地址设为宏 对寄存器的值进行操作
搞了半天才捋清楚。首先
- 定义一个指针变量
int * p;
再定义一个变量 int q = 1;
- 将指针p指向q:
p = &q;
- 通过指针对改变q的值:
*p = 0x10; //此时的*p其实就是等同于q了。*p就是q的别名。对*p的改变也会改变q的值
再看下面的操作
#define CCM_CCGR0 *((volatile unsigned int *)0x020c4068)
2. (unsigned int *)0x020c4068
代表一个指针,指向地址0x020c4068。
3. *((volatile unsigned int *)0x020c4068)
其实和*p的意思一样。代表了地址0x020c4068里面的数据。对CCM_CCGR0 的赋值就是修改固定地址中的数据。
一般这种用法就是在嵌入式软件中对寄存器操作的写法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)