CC2530的串口通信原理与应用_简述cc2530的uart串口接收数据原理

CC2530的波特率有BAUD_E和BAUD_M共同决定:
在这里插入图片描述
F为系统时钟频率,16MHz或32MHz

TI公司提供的数据手册中,给出了32MHz系统时钟频率下各种常用波特率的参数值
在这里插入图片描述
由计算公式可已计算出16MHz系统时钟频率下对应的参数值

  1. 16MHz下9600波特率的UxBAUD.BAUD_M:U0BAUD = 59
  2. 16MHz下9600波特率的UxGCR.BAUD_E:U0GCR = 9

3.串口0的UART初始化设置

void Init\_Uart0(){

    //端口配置
    PERCFG &= ~0x01;    //将串口0的引脚映射到位置1,即P0\_2和P0\_3
    P0SEL = 0x0C;       //将P0\_2和P0\_3端口设置为外设功能
    
    /\*======使用CC2530的内部16MHz晶振产生9600的波特率====\*/
    
    //波特率配置
    U0BAUD = 59;
    U0GCR = 9;
    
    //流控配置
    U0UCR |= 0x80;      //禁止流控,8位数据,清楚缓冲器
    
    //串口模式配置
    U0CSR |= 0xC0;      //选择UART模式,使能接收器

    //中断配置
    UTX0IF = 0;         //清除TX发送中断标志
    URX0IF = 0;         //清除RX接收中断标志
    URX0IE = 1;         //使能URAT0的接收中断
    EA = 1;             //使能总中断
}

4.案例

4.1.串口数据发送

要求:

  1. USART0选择UART模式,波特率9600,I/O引脚映射到备用位置1
  2. 利用看门狗定时器的定时功能实现1秒定时
  3. 在看门狗中断服务模式中,由串口向上机位发送“Hello World!”,回车换行
    D5等作为数据发送指示灯,在字符串发送前点亮,字符串发送结束后熄灭
    在这里插入图片描述

代码:

#include "ioCC2530.h"

#define D5 P1\_3

/\*=============系统时钟切换16MHz→32MHz(32MHz更为准确)====================\*/
void Set\_Clock\_32M(){
  CLKCONCMD &= ~0x40;        //选择系统时钟源为32MHz晶振
  while(CLKCONCMD & 0x40);   //等待晶振稳定
  CLKCONCMD &= ~0x47;        //设置系统主时钟频率为32MHz
}

/\*========================端口初始化函数====================================\*/
void Init\_Port(){
  //初始化LED灯的I/O口
  P1SEL &= ~0x1B;            //P1\_0、P1\_1、P1\_3和P1\_4作为通用I/O口
  P1DIR |= 0x1B;             //P1\_0、P1\_1、P1\_3和P1\_4端口输出
  P1 &= ~0x1B;               //关灯D3~D6
}

/\*=&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值