CC2530中的寄存器SLEEPCMD中的各个位都是什么意思?

2019-07-18 14:42发布

void Global_Init(void)
{
uint16 i;

SLEEPCMD &= ~OSC_PD;//OSC_PD=0X04;开启16MHZ RC 和32MHz XOSC
while (!(SLEEPSTA & XOSC_STB));//XOSC_STB=OX40;等待32MHz XOSC稳定
asm("NOP");
for (i=0; i<504; i++) asm("NOP");//延时63us
CLKCONCMD = (CLKCONCMD_32MHZ | OSC_32KHZ);//设置32MHz XOSC 和 32K XOSC时钟
while (CLKCONSTA != (CLKCONCMD_32MHZ | OSC_32KHZ));//等待时钟生效
SLEEPCMD |= OSC_PD;//关闭16MHz RC
PREFETCH_ENABLE();//FCTL=0XO8;缓存使能,预取模式
APCFG=0xC2;//P0.1 P0.6 P0.7模拟使能
}


我想问的是CC2530中的寄存器SLEEPCMD中的各个位都是什么意思?好像跟我PO上的图不一样;SLEEPCMD &= ~OSC_PD;这句话的意思是把SLEEPCMD的第二位给置0;可是我上面的图第二位写的是保留我下载的资料可能有点错误;请教一下各位大神给我介绍一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 x
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
fejlkel
2019-07-18 17:50
这个设置是可以满足要求的

其次,OSC_PD=0X04这句话是根据宏定义来推算出来的,并没有错误

最后,我的问题是,我需要正确的SLEEPCMD各个位的不同的值代表什么意思。

附录:给你看看底层文件的宏定义,你可以自己推算一下

#ifndef BV
#define BV(n)      (1 << (n))
#endif

#define OSC_PD     BV(2)

一周热门 更多>