新手入门
- 积分
- 26
- 金钱
- 26
- 注册时间
- 2014-12-12
- 在线时间
- 0 小时
|
5金钱
待机模式需要使能SLEEPDEEP位,现在不明白为什么SCB->SCR|=1<<2就使能了SLEEPDEEP位,下面沾出代码;
隔--------------------------------------------------------------------------------------------------------------------------------------------
沾代码前先放上M3内核系统控制寄存器,可以看到寄存器地址为0xE000_ED10,位段2就是SLEEPDEEP位,就是要操作这里
隔-----------------------------------------------------------------------------------------------------------------------------------
再上个图:
在这个图上可以看到SCB的define,把SCB_BASE转换成指向SCB_TypeDef结构体的指针,下面上个结构体的定义图:
大家看到SCR是第五个U32.
隔------------------------------------------------------------------------------------------------------------------------------------------------
下面我们去追SCB_BASE,为了简单我直接上图了
SCB_BASE为SCS_BASE+0x0D00,再去找SCS_BASE
隔-------------------------------------------------------------------------------------------------------------------------------------------------------------
上SCS_BASE:
,找到头了SCB_BASE==(U32)0xE000ED00;
回过头去看M3内核的系统控制寄存器,其地址为0xE000ED10,要操作的SLEEPDEEP在第二个位段;SCB为指向首地址在0xE000ED00的SCB_TypeDef类型指针,
再往下怎么理解啊,SCB->SCR|=1<<2,怎么就操作了SLEEPDEEP位了呢??求解答。。。。。
|
|