CC2530 串口实验

CC2530的串口实验主要有编程主要有一下几个步骤:

一、串口初始化函数(设置时钟频率-->选择用来当做串口的IO-->设置波特率-->发送中断设为0)

二、字符串发送函数(U0DBUF填充字符-->等待串口发送完毕-->发送中断标志设为0,准备下次发送


代码如下:

#include <ioCC2530.h>
#include <string.h>

#define YLED P1_0
#define BLED P1_1

#define LIGHTOPEN 1
#define LIGHTCLOSE 0

#define uint unsigned int
#define uchar unsigned char

void Delay(uint n);
void Init_UsartSend();
void Uart0_Send_String(char *Data,int len);

char Txdata[25]="hello world";

/**************************
*@ brief 延时函数
**************************/
void Delay(uint n)
{
  uint i;
  for(i=0;i<n;i++);
  for(i=0;i<n;i++);
  for(i=0;i<n;i++);
  for(i=0;i<n;i++);
  for(i=0;i<n;i++);
}

/**************************
*@brief 串口及IO口的初始化函数
**************************/
void Init_UsartSend()
{
  P1DIR |= 0x03; //P1.0和P1.1设置为输出
  YLED = LIGHTOPEN;
  BLED = LIGHTOPEN;
  
  CLKCONCMD &= ~0X40;     //设置系统时钟源为32MHz晶振
  while(CLKCONSTA&0X40);  //等待晶振稳定
  CLKCONCMD &= ~0X47;     //设置系统主时钟频率为32MHz
  
  PERCFG = 0X00;          //设置外设控制为P0
  P0SEL = 0X3C;           //选择P0.2,P0.3,P0.4,P0.5作为串口
  P2DIR &= ~0XC0;         //P0优先级作为UART0
  
  U0CSR |= 0X80;          //UART方式
  U0GCR |= 9;          
  U0BAUD |= 59;           //波特率设置为19200
  UTX0IF |= 0;            //UART0 TX 中断标志初始置为0
}

/**************************
* @brief 串口发送函数
* @param Data - 数据指针
         len - 数据长度
**************************/
void Uart0_Send_String(char *Data,int len)
{
  uint i;
  for(i=0;i<len;i++)
  {
    U0DBUF = *Data++; //将数据填充到串口数据寄存器
    while(UTX0IF==0); //等待串口发送完毕
    UTX0IF=0;         //将串口中断置为0,准备下一次的发送
  }
}

/************************
* @brief 主函数
************************/
main()
{
  uchar i;      
  Init_UsartSend(); 
  Uart0_Send_String(Txdata,25);
  for(i=0;i<25;i++)
  {
    Txdata[i] = ' ';  
  }
  strcpy(Txdata,"   我爱你   ");
  /*一直使用串口发送数据*/
  while(1)
  {
    Uart0_Send_String(Txdata,sizeof("   我爱你   "));
    Delay(50000);
    BLED=!BLED;
    Delay(50000);
    Delay(50000);
  }
}

你可能感兴趣的:(CC2530,串口实验)