CC2530之UART串口通信

原创 2016年06月02日 10:20:21

  利用单片机的串口与计算机通信,可方便对各种实验数据进行观察。
  CC2530有两个串口,分别为USART0和USART1。由于采用了引脚复用功能,外设与引脚对应的关系可根据外设控制寄存器PERCFG进行配置,具体对应情况如下:

UART0对应的外部引脚关系,位置1:Rx - P0_2 Tx - P0_3 ;位置2:Rx - P1_4 Tx - P1_5
UART1对应的外部引脚关系,位置1:Rx – P0_5 Tx – P0_4;位置2:Rx - P1_7 Tx - P1_6

由寄存器UxBAUD.BAUD_M[7: 0]和UxGCR.BAUD_E[4: 0]定义波特率。

串口波特率设置公式:这里写图片描述

选择外部32MHz晶振时,具体值可参阅下表:

这里写图片描述

测试程序如下:

#include <iocc2530.h>

#define uint unsigned int
#define uchar unsigned char

void setSysClock();
void uart0Init();
void uart0SendStr(uchar *str);

void main()
{
    setSysClock();       
    uart0Init();

    uart0SendStr("Hello world\n");

    while (1) {

    }
}

/**
 * 设置系统时钟为32MHz
 */
void setSysClock()
{
    CLKCONCMD &= ~0x40;           // 选择系统时钟源为外部32MHz crystal oscillator
    while(CLKCONSTA & 0x40);      // 等待晶振启动 
    CLKCONCMD &= ~0x47;           // 设置系统时钟频率为32MHZ  
}

/**
 * 8-bit数据位,无奇偶校验,Baud:115200bps
 */
void uart0Init()
{
    PERCFG = 0x00;   // 外设控制,UART0选择端口位置1 
    P0SEL = 0x0C;    // 端口0功能选择,P0_2、P0_3用作串口
    P2DIR &= ~0xC0;  // 端口0外设优先级控制,高2位置0,USART0优先

    U0CSR |= 0x80;   // UART模式
    U0GCR |= 11;
    U0BAUD |= 216;   // 采用32MHz系统时钟时,波特率设置为115200
    UTX0IF = 0;      // UART0 TX中断标志初始置位0

}

void uart0SendStr(uchar *str)
{
    while (*str != '\0') {
        U0DBUF = *str++;
        while(UTX0IF != 1);  // 等待发送完成
        UTX0IF = 0; 
    }
}

采用上位机观察实验结果

版权声明:本文为博主原创文章。

TI CC2530基础实验(串口编程——USART0收发测试总结)

无论学习哪款MUC串口对于我们进行实验调试都是非常方便实用的,可以把程序中涉及的某些中间量或者其他程序状态信息打印出来显示在电脑上进行调试,许多MUC和PC机通信都是通过串口来进行的。 CC2530...
  • Thanksgining
  • Thanksgining
  • 2014年12月31日 09:58
  • 9678

CC2530通过串口向PC发送字符串

CC2430包括2个串行通信接口 USART0 与 USART1,每个串口包括两个模式:UART(异步)模式、SPI(同步)模式,本节仅涉及UART模式)。...
  • u013431550
  • u013431550
  • 2014年04月14日 23:29
  • 2443

CC2530基础实验四 串口通信

一、任务要求编写程序实现实验板定期向PC机串口发送字符串“Hello ! I am CC2530 。\n”。实验板开机后按照设定的时间间隔,不断地向PC及发送字符串,报告自己的状态,每发送一次字符串消...
  • qq_33551792
  • qq_33551792
  • 2017年03月25日 18:04
  • 1702

CC2530串口

2530有两个USART口,每个USART口都有两个位置可选择,以USART0为例,位置1用的是P0端口(P0_2(RX)、P0_3(TX)),位置2用的是P1端口(P1_5(TX)和P1_4(RX)...
  • aadyx2010
  • aadyx2010
  • 2013年07月22日 15:57
  • 1517

CC2530 串口驱动

使用IAR驱动CC2530的串口0,串口1,实现数据发送以及printf,中断接收数据 uart.c /*******************************************...
  • cp1300
  • cp1300
  • 2013年11月20日 19:37
  • 8866

TIMAC 开发随笔二:CC2530的串口操作

TIMAC 开发随笔 二 : CC2530的串口操作 引用请注明出处!!我的邮箱qinxiaoyu@163.com         其实说CC2530串口的文章已经很多了,有的文章说的特别的详细。...
  • u012812482
  • u012812482
  • 2014年01月27日 20:39
  • 3846

ZigBee CC2530串口通信调试

刚接触ZigBee,熟悉了一下ZStack协议栈,总算有了点认识。先从调试串口开始,再慢慢开始协议栈代码调试,下面程序已实现发送和接收数据,用的是CC Debugge仿真器和ZigBee最小系统,使用...
  • u012246376
  • u012246376
  • 2015年05月31日 18:13
  • 2898

03 TI cc2530外部中断的应用

在cc2530的中断控制器,共有18个中断源: 其中P0INT, P1INT, P2INT分别是P0, P1, P2组IO口的中断号. 外部中断其实就是指GPIO口的中断功能, 也就是当一个IO口...
  • jklinux
  • jklinux
  • 2017年07月20日 00:03
  • 573

CC2530基础实验之串口控制LED灯

/************************************************************** * 文件名称:uart2.c * 功 能:PC机控制发光二极管...
  • qq_33551792
  • qq_33551792
  • 2017年03月25日 18:31
  • 765

zigbee基础应用(五)uart串口通信

zigbee基础应用(五)uart串口通信 1.硬件篇 P0.2为RX P0.3为TX 2.芯片篇 用到的芯片的概况 3.计算篇 波...
  • black_yu
  • black_yu
  • 2016年06月03日 10:53
  • 764
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CC2530之UART串口通信
举报原因:
原因补充:

(最多只允许输入30个字)