无线传感网络 --ZigBee2-3 串口

CC2530的串口通信模块

CC2530具备2个串口;且每个串口都可以配置选择控制脚。
两个USART接口具有相同的功能,通过PERCFG寄存器可以设置两个USART接口对应外部1/O引脚的映射关系:
位置1:RX0—P02TX0—PO3 RX1—P05TX1—PO4
位置2:RX0—P14TX0—P15 RX1—P17TX1—P16

在这里插入图片描述在这里插入图片描述
串口初始化代码:
在这里插入图片描述

相关寄存器

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

波特率

在这里插入图片描述

串口配置步骤

  1. 指定串口的IO位置;(此处配置P02和 P03用作串口 UARTO2配置相应串口的控制和状态寄存器。)
  2. 相应IO配置成偏上外设功能;
  3. 8个数据位、1个停止位、无流控、无校验确立;
  4. 波特率;
  5. 开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;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值