实验准备
1 配置zigbee cc2530 时钟
时钟树
设备有一个内部系统时钟或主时钟。
设备的系统时钟源可以采用16MHZ 的RC振荡器,也可采用32MHZ的晶体振荡器。
CLKCONCMD.OSC 位选择 主系统时钟的源。
但是改变CLKCONCMD.OSC不会立即改变系统时钟,需要等待一段时间。
当 CLKCONSTA.OSC = CLKCONCMD.OSC 的时, 时钟改变生效
CLKCONCMD寄存器
CLKCONSTA 寄存器
时钟配置代码:
CLKCONCMD &= ~0x40;//设置 CLKCONCMD第6位OSC振荡器,为0
while(CLKCONSTA & 0x40);//判断CLKCONSTA第6位OSC是否为1
CLKCONCMD &= ~0x47;//设置时钟频率,~0x47 = 1011 1000,后三位置0 ,后三位控制CLKSPD = 000,32MHZ
2 USART外设的I/O口配置
PERCFG寄存器
P0SEL 寄存器
P2DIR 寄存器
因为会有多个i/o外设映射在同一引脚上,产生i/o映射冲突,通过配置优先级(P2DIR.PRIP0 位)可以解决冲突
代码:
P2DIR &= ~0XC0;//P0优先作为UART0
PERCFG = 0x00;//USART I/O位置使用备用位置1,P0_2,P0_3
P0SEL = 0x3C;//P0_2,P0_3,P0_4,P0_5,用作外设,作为串口
3 配置USART方式为 UART方式
U0CSR 寄存器
代码:
U0CSR |= 0x80;//置第7位为1,USART模式设置为UART模式
4 配置波特率
U0GCR寄存器
U0BAUD 寄存器
代码:
U0GCR |= 10;
U0BAUD |= 59;//波波特率设置 38400
清除串口介绍标志位
中断标志:
代码:
UTX0IF = 0;//中断标志位初始置为0.