I/O的输出配置:
1.配置端口为普通I/O口模式,非片上外设模式。(SEL寄存器)
2.设置I/O口为输出模式。(DIR寄存器)
I/O口输入配置:
1.配置端口为普通I/O口模式,非片上外设模式。(SEL寄存器)
2.配置I/O口为输入模式。(DIR寄存器)
3.配置引脚为上下拉模式。(INP寄存器)
4.配置引脚为上拉模式。(P2INP寄存器)
配置32M作为高频时钟源:
void Init32M() //将32M作为CC2530的高频时钟源
{
SLEEPCMD &=0xFB; //开启两个高频时钟
while(0 == (SLEEPSTA & 0x40)); //等待32M时钟稳定
delay(63,63);
CLKCONCMD &=0xF8; //表示不分频输出
CLKCONCMD &=0xBF; //设置32M作为系统时钟
while(CLKCONSTA & 0x40); //表示已经转换成32M的时源
}
时钟
1.CC2530在正常运行的时候需要一个高频时钟信号和一个低频时钟信号
高频时钟信号,主要供给CPU,保证程序的运行。
低频时钟信号,主要供给看门狗、睡眠定时器等片上外设
2.时钟信号的来源:
高频信号有两个,芯片内部的16M RC电路;外接的32M石英晶振。
低频信号也有两个来源,芯片内部的32K RC电路,外接的32.768k石英晶振。
3.CC2530芯片默认上电的时候,是内部的两个RC电路作为高频和低频的时钟来源。
4.如果使用串口,特别是无线通信的时候,必须要用32M的石英晶振作为高频时钟。
5.高频时钟源特点:
2个高频时钟源可以同时起振产生高频信号;
而两个低频时钟,某一时刻只能由一个起振,并且起振的这个时钟供给CC2530
时钟信号16M转换为32M的时钟信号
1、让SLEEPCMD的第2位为0;
2、SLEEPSTA寄存器的第6位为1表示32M时钟源稳定
3、超过63us延时
4、把寄存器CLKCONCMD的低3位,设置为000,表示不分频输出
5、把寄存器CLKCONCMD的第6位,清0,设置32M作为系统主时钟
6、如果读CLKCONSTA这个寄存器的第6为0,表示32M的时钟源已经作为了当前的系统主时钟,程序可以往下运行了。
USART 0
RT:RXDATA 表示接收
TX:TXDATA 表示发送
串口配置步骤
1、指定串口的IO位置;
2、相应IO配置成偏上外设功能;
3、8个数据位、1个停止位、无流控制、无校验确立;
4、波特率;
5、开CPU中断、对应串口接收中断。