惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
B
Blog
S
SegmentFault 最新的问题
Vercel News
Vercel News
博客园 - 聂微东
宝玉的分享
宝玉的分享
C
Check Point Blog
有赞技术团队
有赞技术团队
IT之家
IT之家
V
V2EX
爱范儿
爱范儿
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
博客园 - 司徒正美
博客园_首页
Last Week in AI
Last Week in AI
博客园 - 叶小钗
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
F
Fortinet All Blogs
腾讯CDC
J
Java Code Geeks

博客园 - 邵利超

ZigBee学习之37——osalInitTasks()分析 ZigBee2006协议栈介绍 点对点(单向)传输实验之LED灯指示 ZigBee四种绑定方式在TI Z-Stack中的应用【转载】 DSP串行FLASH(AT45DB642)的源代码 at45db642 程序代码 点对点通信实验小结 gps 信号解析与显示 CC2430串口测试实验(UART) 正则表达式集合 C#版万年历 在C#中调用视图 c#调用SqlServer中的存储过程 SQL Server 2005 BI综合案例系列课程 SQL2005 BI系列课程 微软工程师主讲的SqlServer2005视频教程 多线程C#2.0聊天软件 内含代码 C#网络编程概述 三 C#网络编程概述 二
CC2430串口收发数据
邵利超 · 2010-07-04 · via 博客园 - 邵利超

//cd wxl
/*****************************************
数据格式: 灯选择 开关 #
10# 关RED LED
11# 开RED LED
20# 关GREEN LED
21# 开GREEN LED
*****************************************/
#include <iocc2430.h>
#include <string.h>

#define uint unsigned int
#define uchar unsigned char
#define FALSE 0
#define TURE 1

//定义控制灯的端口
#define led1 P1_0
#define led2 P1_1

void Delay(uint);
void initUARTtest(void);

uchar Recdata[3]="000";
uchar RTflag = 1;
uchar temp;
uint datanumber = 0;
uint stringlen;

/****************************************************************
*函数功能 :延时      
*入口参数 :定性延时         
*返 回 值 :无            
*说    明 :             
****************************************************************/
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++);
}

/****************************************************************
*函数功能 :初始化串口1          
*入口参数 :无            
*返 回 值 :无       
*说    明 :57600-8-n-1      
****************************************************************/
void initUARTtest(void)
{

    CLKCON &= ~0x40;              //晶振
    while(!(SLEEP & 0x40));      //等待晶振稳定
    CLKCON &= ~0x47;             //TICHSPD128分频,CLKSPD不分频
    SLEEP |= 0x04;    //关闭不用的RC振荡器

    PERCFG = 0x00;     //位置1 P0口
    P0SEL = 0x3c;     //P0用作串口

    U0CSR |= 0x80;     //UART方式
    U0GCR |= 10;     //baud_e
    U0BAUD |= 216;     //波特率设为57600
    UTX0IF = 1;

    U0CSR |= 0X40;     //允许接收
    IEN0 |= 0x84;     //开总中断,接收中断
}

/*****************************************
*函数功能 :初始化P1口为输出
*入口参数 :无
*返 回 值 :无
*说    明 :无
*****************************************/
void Init_LED_IO(void)
{
//P1 out
P1DIR |= 0x03;      //P1控制LED
led1 = 1;
led2 = 1;     //关LED
}


/****************************************************************
*函数功能 :主函数        
*入口参数 :无       
*返 回 值 :无      
*说    明 :无       
****************************************************************/
void main(void)
{
        uchar ii;

        Init_LED_IO();
initUARTtest();

while(1)
{
          if(RTflag == 1)    //接收
          {
            if( temp != 0)
            {
                if((temp!='#')&&(datanumber<3))
                {                               //’#‘被定义为结束字符
                                                //最多能接收3个字符
                  Recdata[datanumber++] = temp;
                }
                else
                {
                  RTflag = 3;                   //进入改变小灯的程序
                }
                if(datanumber == 3)RTflag = 3;
              temp = 0;
            }
          }
          if(RTflag == 3)
          {
            if(Recdata[0]=='1')
            {
              if(Recdata[1]=='0')led1 = 1;      // 10# 关红色LED
              else
                led1 = 0;                       // 11# 开红色LED
            }

             if(Recdata[0]=='2')
            {
              if(Recdata[1]=='0')led2 = 1;      // 20# 关绿色LED
              else
                led2 = 0;                       // 21# 开绿色LED
            }
            RTflag = 1;
            for(ii=0;ii<3;ii++)Recdata[ii]=' '; //清除刚才的命令
            datanumber = 0;                     //指针归位
          }
        }//while
}

/****************************************************************
*函数功能 :串口接收一个字符     
*入口参数 : 无      
*返 回 值 :无    
*说    明 :接收完成后仍然允许接收  
****************************************************************/
#pragma vector = URX0_VECTOR
__interrupt void UART0_ISR(void)
{
   URX0IF = 0;     //清中断标志
temp = U0DBUF;
}

更多资料与技术讨论请联系:

上海无线龙通讯科技有限公司