在RTC试验中读写BKRx寄存器时,为什么要取两次值--*(u32*)temp)=data;

2019-07-21 03:33发布

[mw_shl_code=c,true]void RTC_Write_BKR(u32 BKRx,u32 data) { u32 temp=0; temp=RTC_BASE+0x50+BKRx*4; (*(u32*)temp)=data; }[/mw_shl_code] 请教下各位(づ ̄3 ̄)づ╭?~
如上代码:temp=RTC在外设中的便宜量+BKR在 RTC中的偏移量+寄存器号偏移量;
temp已经定位到BKRx寄存器的地址了,怎么还需要对(*temp)再取值?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-07-21 05:45
这里要操作地址的值,而不是操作地址.
_binge
2楼-- · 2019-07-21 10:08
回复【2楼】正点原子:
---------------------------------
temp不就是地址了么?
正点原子
3楼-- · 2019-07-21 14:45
回复【3楼】_binge:
---------------------------------
我要操作这个地址的值怎么板?不是操作地址!!
你这指针基础知识没学牢固.
_binge
4楼-- · 2019-07-21 20:09
回复【4楼】正点原子:
--------------------------------
哦!我之前理解错了temp=RTC_BASE+0x50+BKRx*4,我以为*temp就等价于*(RTC_BASE+0x50+BKRx*4),temp是一个变量,不是指针

一周热门 更多>