This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

cc2530

Other Parts Discussed in Thread: CC2530

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;可是我上面的图第二位写的是保留

我下载的资料可能有点错误;请教一下各位大神给我介绍一下

  • SLEEPCMD &= ~OSC_PD;//OSC_PD=0X04;开启16MHZ RC 和32MHz XOSC

    OSC_PD=0X04; 这句话应该是错误的,如果是头文件提供的宏,肯定不会与硬件实体冲突,你再看看头文件里是这么定义这个变量的吗?

    另外这个设置能否满足要求呢?

  • 首先,我回答你的疑问:这个设置是可以满足要求的

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

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

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

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

    #define OSC_PD     BV(2)