找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2619|回复: 0
打印 上一主题 下一主题
收起左侧

cc2530串口发送程序源码

[复制链接]
跳转到指定楼层
楼主
ID:395365 发表于 2018-9-8 17:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <ioCC2530.h>
#include <string.h>
#define uint unsigned int
#define uchar unsigned char
//定义控制灯的端口
#define LED1 P1_0
#define LED2 P1_1
//函数声明
void Delay(uint);
void initUARTtest(void);
void UartTX_Send_String(char *Data,int len);

void InitClock(void)
{
    //选择32MHz晶振
    CLKCONCMD &= ~0x40;
    //等待晶振稳定
    while(!(SLEEPSTA & 0x40));     
    //TICHSPD128分频,CLKSPD不分频
    CLKCONCMD &= ~0x47;            
    //关闭不用的RC振荡器
   SLEEPCMD |= 0x04;
}

void initUARTtest(void)
{
    //初始化时钟
    InitClock();
    //使用串口备用位置1 P0口
    PERCFG = 0x00;
    //P0用作串口
    P0SEL = 0x3c;
    //选择串口0优先作为串口
    P2DIR &= ~0XC0;
    //UART方式
    U0CSR |= 0x80;
    //波特率baud_e的选择
    U0GCR |= 10;
    //波特率设为57600
    U0BAUD |= 216;
    //串口0发送中断标志清零
    UTX0IF = 0;
}

void UartTX_Send_String(char *Data,int len)
{
  int j;
  for(j=0;j<len;j++)
  {
    U0DBUF = *Data++;
    while(UTX0IF == 0);
    UTX0IF = 0;
  }
}
/*延时函数*/
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++);
}
/*main()函数*/
void main(void)
{
  uchar i;
  char Txdata[30]=" Qingdao Donghe Xinxi Jishu ";
  //P1 输出控制LED
  P1DIR = 0x03;
  //开LED1
  LED1 = 0;
  //关LED2
  LED2 = 1;
  //串口初始化
  initUARTtest();
  //串口发送Qingdao Donghe Xinxi Jishu
  UartTX_Send_String(Txdata,29);
  //清空Txdata
  for(i=0;i<30;i++)Txdata[i]=' ';
  //将UART0 TX test赋给Txdata;
  strcpy(Txdata,"123");
  while(1)
  {
    //串口发送数据
    UartTX_Send_String(Txdata,sizeof("123"));
    //延时
    Delay(50000);
    Delay(50000);
    Delay(50000);
    LED1 = ~LED1;
    LED2 = ~LED2;
  }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表