分享

CC2530 UART串口实验1(UART0串口发送字符串)

 xingwangjy 2014-12-24

/*****************************************
//by 虚幻代码
//说明:从CC2530 上通过串口不断发送字符串到PC 端,实验使用UART0,波特率为19200
*****************************************/

#include <iocc2530.h>
#include <string.h>

#define uint unsigned int
#define uchar unsigned char

//定义LED
#define rled P1_0
#define gled P1_1

//函数声明
void delay(uint);
void uarttx_send_string(char *data,int len);
//延迟函数
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++);
}
//串口发送字符串函数
void uarttx_send_string(char *data,int len)
{
  int j;
  for(j=0;j<len;j++)
  {
    U0DBUF=*data++;
    while(UTX0IF==0);
    UTX0IF=0;
  }
}

char txdata[25]="start transmit:\n";

//主函数
void main(void)
{
  //初始化LED
  P1DIR=0X03;
  rled=1;
  gled=1;
 
  //初始化串口
  CLKCONCMD &=0XBF;//系统时钟为32MHZ
  while(CLKCONSTA & 0X40);//等待时钟稳定
  CLKCONCMD &=0XF8;//主时钟频率为32MHZ
 
  PERCFG &=0XFE;//设USART0的ALT 1
  P0SEL |=0X3C;//P0口2、3、4、5做外设
  P2DIR &=0X3F;//P0外设优先级USART0最高
 
  U0CSR |=0X80;//设USART0 工作方式为 UART
  U0GCR |=9;
  U0BAUD |=59;//设波特率
  UTX0IF=0;//UART0 TX中断标志位清0
 
  //传送字符串
  uarttx_send_string(txdata,25);
   
  uint i;
  for(i=0;i<30;i++)
    txdata[i]=' ';
  strcpy(txdata,"hello,cc2530\n");
 
  while(1)
  {
    uarttx_send_string(txdata,sizeof("hello,cc2530\n"));
    delay(60000);
    gled=!gled;
    delay(60000);
    delay(60000);
  }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约