返回首页
当前位置: 主页 > 单片机编程 >

MSP430X169无线串口客户端程序

时间:2009-06-19 17:15来源:服安资讯 作者:admin 点击:
MSP430X169无线串口客户端程序 /* Name: 客户端无线发射器程序 Copyright: ShenZhen JinKe Electric Co,.LTD Author: RenBang Date: 23-04-06 17:02 Description: */ #include MSP430x16x.h #include Uart_Client.h #include Global.h #include stri
  

MSP430X169无线串口客户端程序

/*


  Name: 客户端无线发射器程序


  Copyright: ShenZhen JinKe Electric Co,.LTD


  Author: RenBang


  Date: 23-04-06 17:02


  Description:



*/



#include "MSP430x16x.h"


#include "Uart_Client.h"


#include "Global.h"


#include "string.h"


#include "stdio.h"


#include "string.h"



#define DeviceID 0x05              //设备码



#define Clinet_Transmit P3OUT=0x0C


#define Clinet_Receive  P3OUT=0x04  //P3.1 CS=0 433.92MHZ,P3.2 PW_EN=1 Operation mode,P3.3=0 TX_EN receiver;




/*****************************************************/


/*   数据定义                                        */


/*****************************************************/



unsigned char flag0=0;                                                 //帧是否开始标志


unsigned char flag1=0;                                                //地址匹配成功位


unsigned char uart_Client_Rbuf[UART_BUF_SIZE];                        //接收缓冲区


unsigned char uart_Client_Tbuf[UART_BUF_SIZE];                       //发送缓冲区


int uart_Client_RPos,                                                //用于指示下一个存放接收数据的缓冲区位置


    uart_Client_Tpos;                                                // 标识 uart 下一个要发送的数据的位置


int  uart_Client_Rnum,                                               // 接收缓冲区缓存的数据数目(单位字符)


     uart_Client_Tnum;                                               // 发送缓冲区缓存的数据数目(单位字符)


unsigned char Data[UART_BUF_SIZE];


            



 



/*******************************************************/


//init the UART0 32k/9600baud,UART0 as transmition;


void init_UART0(void)


{


  UCTL0 &= ~SWRST;


  UCTL0 |=CHAR;//0X10;


  UBR00 = 0x03;


  UBR10 = 0x00;


  UMCTL0 = 0x4A;


  UTCTL0 = SSEL0;//0X10;


  ME1 |= UTXE0+URXE0 ;   //enable the UART0


  IE1 |=URXIE0;


  P3SEL|=BIT4+BIT5;


  P3DIR|=BIT4;


 


}



 



//wireless Device#1 as transmition


void init_Wireless_Client()


{


init_UART0();


P3DIR|=0x0E;


Clinet_Receive;   //P3.1 CS=0 433.92MHZ,P3.2 PW_EN=1 Operation mode,P3.3=0 TX_EN receiver;


}




#pragma vector = UART0RX_VECTOR                     //下位机先进行数据接收


__interrupt void Uart0rx_IRS(void)


{


   int j=0;


   if(flag0==0)


   {


     if(RXBUF0==0xFF)


       {


        flag0=1;


       }


   }


   if(flag0==1)


   {


       if(RXBUF0==DeviceID)            //设备码验证


       {


        flag1=1;


        uart_Client_RPos=0;


       }


 


   }


 


   if(flag0==1&&flag1==1)


   {


    


             uart_Client_Rbuf[uart_Client_RPos]=RXBUF0;


             uart_Client_Rnum++;                        //接收数据计数器加1


             uart_Client_RPos++;                    //移动接收缓冲区指针


             if(uart_Client_Rbuf[uart_Client_RPos-1]=='V') //帧结束字符


             {


                flag0=0;


                flag1=0;                          //帧 起始标志清除


                for(;j<uart_Client_RPos-1;j++) Data[j]=uart_Client_Rbuf[j];            //转移接收到的数据


                printf("%s\n",Data);


              


                Clinet_Transmit;                  //设置为发送模式


                delay(3000);                                  //延时3m秒


                IE1 &=~ URXIE0;                   //disable UTXIE0


                IE1 |=UTXIE0;                   //enable UTXIE0


             }//for


   } //if


  



}//__interrupt




#pragma vector=UART0TX_VECTOR    //接收到发送数据指令后客户机从接收模式转变为发送模式进行数据发送


__interrupt void Uart0tx_IRS()


{



    uart_Client_Tnum=uart_Client_Tnum-1;


    if (uart_Client_Tnum >=0)


    {


        TXBUF1 =uart_Client_Tbuf[uart_Client_Tpos ++];

顶一下
(0)
0%
踩一下
(0)
0%
双击复制本文网址,发送给您QQ/MSN上的朋友:
------分隔线----------------------------
此页的访问者还关注了以下资讯:
  • ·采用等精度测频原理的频率计的程序
    ·74HC595编程应用
    ·74HC595 74HC165程序例子
    ·采用mega8 和18b20的温度采集程序
    ·ATMega8 中断方式UART测试程序
    ·MSP430X169无线串口客户端程序
    ·MSP430X169无线串口主机端程序
    ·PIC 8位单片机的汇编语言
    ·PIC单片机开发的若干问题
    ·单灯闪烁实验
    ·按键控制灯实验
    ·P1口八个LED灯做三路流水灯实验
    ·P1口八个LED灯做加法运算实验
    ·51单片机硬盘控制电路以及源程序
    ·基于51单片机的数控电源设计
    ·51单片机RTL8019AS网卡驱动程序
    ·用C51实现单片机的中文输入法
    ·四点二次插值的单片机汇编程序实现
    ·EH78系列单片机的编程技巧
    ·PIC单片机引脚中断程序的设计技巧
    ·基于PICC 编译环境编写PIC单片机程序
    ·单片机应用编程技巧
    ·给C语言(主要是单片机的C)初学者的建议
    ·用AT89C51实验板的两位数码管显示00~99依
    ·编写适合自己需要的printf()函数
    ·如何优化C语言代码
    ·在C51中变量的空间分配几个方法
    ·用keil计算延时的方法
    ·KeilC51高级编程
    ·HC(S)08单片机的高效C语言编程
    ·51单片机8*8点阵LED显示原理及程序
    ·PIC 单片机CRC校验程序
    ·PIC单片机控制步进电机源程序
    ·PIC 单片机双机异步通信程序
    ·PIC C延时函数和循环体优化
    ·PIC16F877单片机与PC机通讯的汇编程序
    ·DS1302与PIC16F877接口程序
    ·PIC 运算子程序(8)
    ·PIC 运算子程序(7)
    ·PIC 运算子程序(6)
  • 您可能还感兴趣的内容:
  • 义隆、合泰、松翰、feeling、EMC、holtek、sonix各大品牌IC、单片机、芯片底价销售!(义隆大陆区总代理商)
  • 发表评论 查看所有评论
    .请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论.
    .用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任.
    .本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据·
    .请客观的评价您所看到的资讯,提倡就事论事.杜绝漫骂和人身攻击等不文明行为!
    评价:
    表情:
    用户名: 密码: 验证码:
    单片机销售业务热线
      手机:13684994966
    本站赞助商信息
    编辑推荐信息
    论坛最新讨论资讯
    本站赞助商链接