ZigBee2-3 串口
CC2530的串口通信模块
CC2530具备2个串口;且每个串口都可以配置选择控制脚。
两个USART接口具有相同的功能,通过PERCFG寄存器可以设置两个USART接口对应外部1/O引脚的映射关系:
位置1:RX0—P02TX0—PO3 RX1—P05TX1—PO4
位置2:RX0—P14TX0—P15 RX1—P17TX1—P16
串口初始化代码:
相关寄存器
波特率
串口配置步骤
- 指定串口的IO位置;(此处配置P02和 P03用作串口 UARTO2配置相应串口的控制和状态寄存器。)
- 相应IO配置成偏上外设功能;
- 8个数据位、1个停止位、无流控、无校验确立;
- 波特率;
- 开CPU中断、对应串口接收中断;
寄存器具体配置如下:
这里不用过多纠结,知道串口是这么配置即可
PERCFG = 0x00; //位置1P0口
POSEL = 0x0c //P02P03用作串口,设置为片上外设模式(外部设备功能)
P2DIR &= ~0XC0; //P0 优先作为 UARTO
U0CSR = 0x80; //设置为UART方式
U0GCR=11;
UOBAUD=216; /波特率设为115200 根据上面表中获得的数据
UTXOIF =0; //UARTO TX 中断标志初始置位0
U0CSR |= 0x40; //允许接收
IEN0 |= 0x84; //开总中断允许接收中断
/****************************************************************************
* 名 称: UartSendString()
* 功 能: 串口发送函数
* 入口参数: Data:发送缓冲区 len:发送长度
* 出口参数: 无
****************************************************************************/
void UartSendString(char *Data, int len)
{
uint i;
for(i=0; i<len; i++)
{
U0DBUF = *Data++;
while(UTX0IF == 0);
UTX0IF = 0;
}
}