历史上的今天
返回首页

历史上的今天

今天是:2025年04月01日(星期二)

正在发生

2021年04月01日 | 基于MSP430的无线传输协议

2021-04-01 来源:eefocus

该协议基于在同一块MSP430上用串口1发射,串口0接收,使用两块无线收发的NRF401模块。


初始化串口0,用于接收


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;

  Clinet_Receive;

}


初始化串口1,用于发送


void init_UART1()

{

  UCTL1 &= ~SWRST;  

  UCTL1 |=CHAR;//0X10;

  UBR01 = 0x03;

  UBR11 = 0x00;

  UMCTL1 = 0x4A;

  UTCTL1 = SSEL0; //

  ME2 |= URXE1+UTXE1 ; //enable the UART1

  IE2 |=URXIE1;

  P3SEL|=BIT6+BIT7;

  P3DIR|=BIT6+BIT7;

  Host_Transmit;

}


初始化NRF401发射模块


void init_NRF401_TR(void)

{

  Host_PowerUp;                               //上电到发射状态避免辐射和干扰

  NRF401_CS;

  delayms(5);

  Host_Transmit;                              //设置串口无线模块为发射模式

  delayms(1);                                 //延时4毫秒}


初始化NRF401接收模块


void init_NRF401_RE(void)

{

  Host_PowerUp;                               //上电到发射状态避免辐射和干扰

  NRF401_CS;

  Host_Receive;                              //设置串口无线模块为发射模式

  delayms(5);                                 //延时4毫秒}


发射模块发送数据



__monitor  void uart_H2C(unsigned char id,unsigned char cmd)   //Host to Host transmit mode{  

   

    unsigned int crc=0;

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

    pro[0]=id;

    pro[1]=cmd;

    crc=cal_crc(pro,2);                         //计算校验码

   

    uart_Host_Tbuf[0]=0x11;                     //先导字段,容易丢失

    uart_Host_Tbuf[1]=0x55;                     //抗干扰字节

    uart_Host_Tbuf[2]=0xAA;                     //帧开始字节

    uart_Host_Tbuf[3]=id;

    uart_Host_Tbuf[4]=cmd;             

    uart_Host_Tbuf[5]=(char)(crc/256);          //循环冗余校验高8位

    uart_Host_Tbuf[6]=(char)(crc%256);          //循环冗余校验低8位

    uart_Host_Tbuf[7]=0x77;                     //结束标志

    uart_Host_Tnum=8;        //发送帧长度,3个先导字节+2data+2个校验字节+1个结束字

    Host_Transmit;

    delayms(5);

    uart_Puts(uart_Host_Tbuf,uart_Host_Tnum,1);  //发送数据}


通过实验,发现在发送是延时片刻数据接收误码率低


__monitor void uart_Puts(unsigned char *str,unsigned char length,unsigned char uart_id)

//输出多数据函数

{

   while (length!=0)

   {

      if(uart_id==0)

        uart0_putchar(*str++ );                     //通过串口发送数据

      else

        {

         uart1_putchar(*str++ );                     //通过串口发送数据  

         delay(255);                   

        }

      length--;

      

   }

   

}


void uart1_putchar(char c)               //串口1发送一个字符{

TXBUF1 = c;

while((UTCTL1&0x01)==0);

}


接收通过中断处理:

#pragma vector = UART0RX_VECTOR        //下位机先进行数据接收__interrupt void Uart0rx_IRS(void)

{  

   int j=0;

   _DINT();

   

   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  //转移接收到的数据

                printf("UART0:%sn",Data);

         

               

                Clinet_Transmit;                  //设置为发送模式

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

            

                }//for

   } //if

    _EINT();


}//__interrupt


推荐阅读

史海拾趣

Chemtronics公司的发展小趣事

1999年,Chemtronics迎来了一个重要的转折点,成为Illinois Tool Works Inc的全资子公司。这一变化为Chemtronics带来了更多的资源和支持,使其能够进一步扩大生产规模、提升研发能力,并在全球范围内拓展业务。

Digi International公司的发展小趣事

为了庆祝公司成立30周年,Digi International推出了全新的品牌标识。这一品牌升级不仅展现了公司的创新精神和市场地位,也为其未来的发展注入了新的活力。同时,品牌升级也反映了公司对市场趋势的敏锐洞察和对客户需求的深入理解。

DMEL Inc公司的发展小趣事

为了提升产品质量和用户体验,DMEL Inc不断加大对生产过程的管控力度。公司引进了先进的生产设备和管理系统,建立了严格的质量检测体系。同时,DMEL Inc还加强了与供应商的合作,确保原材料的质量和供应的稳定性。这些措施的实施,使得DMEL Inc的产品质量得到了显著提升,赢得了消费者的信赖和好评。

Good-Ark公司的发展小趣事
检查声音传感器是否有损坏或被遮挡,确保其能够正常接收声音信号。
HBH-Microwave公司的发展小趣事

HBH-Microwave的故事始于对高性能微波组件的执着追求。在成立初期,公司便聚焦于设计并制造能够满足严苛应用需求的微波放大器。通过不断的技术研发,HBH成功推出了HA6013型号的高功率放大器,该产品在17.0至18.0 GHz频段内表现出色,迅速在通信和雷达领域获得认可。这一创新不仅巩固了HBH在微波技术领域的地位,也为后续产品的开发奠定了坚实的技术基础。

Deltron公司的发展小趣事

随着国内市场的不断饱和,Deltron公司开始积极拓展国际市场。通过参加国际展览、与国外企业建立合作关系、设立海外分支机构等方式,Deltron逐渐打开了国际市场的大门。其优质的产品和服务得到了国际客户的认可,为公司的发展注入了新的活力。

问答坊 | AI 解惑

招聘Web开发工程师/嵌入式软件开发工程师

招聘Web开发工程师/嵌入式软件开发工程师嵌入式网络软件工程师 职责描述: 1.        交换机,路由的固化软件的预研、设计、编码、调试及单元测试 2.        在Linux系统下的C/C+ ...…

查看全部问答>

国家传感器科技发展概况介绍

[摘要]\"传感器技术研究\"是\"九五\"国家重点科技攻关项目。文中叙述了传感器科技攻关在解决成果工程化、新产品开发和共性关键技术方面所取得的主要成绩,包括技术创新、中试生产和达到的技术水平。通过科技攻关,提高了我国传感器技术水平,促进了 ...…

查看全部问答>

采用数字电源还是模拟电源?

作者:Chris Hossack 博士,德州仪器 (TI) Biricha 电源总监和 Richard Poley,TI 现场应用工程师 近几年,使用微处理器控制开关式电源不断发展。在数字电源相比模拟电源的优点方面仍存在许多争议,两大阵营你来我往、争论激烈。 实际上,每一 ...…

查看全部问答>

请教达人: WiFi 转 SCI 模块

请教各位:     我需要实现的方案是:  芯片(MCU or DSP)的SCI口 跟 一个WiFi 模块联接起来;                           然后 ...…

查看全部问答>

wince5.0 LCD驱动

向有经验的朋友咨询或协助开发(上海),报酬面议。站内联系。…

查看全部问答>

黑金FPGA开发板(本代理给予你最大的优惠)

【适用人群】         FPGA黑金开发板适用于计算机专业、电子类及相关专业的本科生、研究生等相关人士,如计算机科学、微电子、通信、测控技术与仪器设计、电子工程、机电一体化、自动化等相关专业;可用于学 ...…

查看全部问答>

网络开发笔记2_第一张网页

一新建工程用keil 新建一个工程。里面添加DriverLib.lib, TCPD_CM3.lib , TCP_CM3.lib这三个库再添加Net_Config.c、LM3S_EMAC.c、LM3S_EMAC.h 这两个C 文件,其中LM3S_EMAC.c 中RL-TCPNet 与LM3S 的底层驱动接口, Net_Config.c 是RLTCPNet的配置文 ...…

查看全部问答>

usart 通讯问题求助

我在调试PC与430F1232通讯时遇到一特古怪的问题,还请各位帮忙分析一下。 PC为主,单片机为从。9600/8/N/1。主从通讯规约自定,应该没问题,在别的地方用过。 1 PC向单片机发送数据上传指令。 2 单片机收到后,校验,正确便返回一组数据,否则不 ...…

查看全部问答>

三卡三待苹果皮

这样的苹果得有多厚... …

查看全部问答>