MSP430通过蓝牙BT05传数据出问题

2019-03-24 08:59发布

    本人刚刚接触单片机和蓝牙,自己出于兴趣在做一个小的东西。今天在调一个代码,我想让单片机每秒发送一个是字符串,然后用手机APP接收,但是用买时赠送的手机APP显示每秒只发送了一个字节的内容,自己编写的APP显示每秒发送一个00,求问题出在哪里了啊?
下面是我的代码:

#include <MSP430X14X.h>
int m=1;                                                                  / /m用作后面中断用
void uart_print(char *p, int len)
{
  unsigned int i;
  for(i=0;i<len;i++)
      U1TXBUF=*p++;

  U1TXBUF=0x0a;
}



void init_uart1(void)
{
  U1CTL += CHAR;

  U1TCTL = 0x00;
  U1TCTL += SSEL1;

  UBR0_1 = 0X45;
  UBR1_1 = 0X00;
  UMCTL_1 = 0X00;

  ME2 |= UTXE1 + URXE1;
  IE2 |= URXIE1;
  IE2 |= UTXIE1;

  P3SEL = 0;
  P3SEL |= BIT6;
  P3SEL |= BIT7;

  P3DIR |= BIT6;
  return;
}



main(void)
{


    P1DIR = 0XFF;P1OUT = 0XFF;
    P2DIR = 0XFF;P2OUT = 0XFF;
    P3DIR = 0XFF;P3OUT = 0XFF;
    P4DIR = 0XFF;P4OUT = 0XFF;
    P5DIR = 0XFF;P5OUT = 0XFF;
    P6DIR = 0XFF;P6OUT = 0XFF;

    WDTCTL = WDTPW + WDTHOLD;       //关闭看门狗

    P6DIR |= BIT2;P6OUT |= BIT2;    //关闭电平转换
    CCTL0 = CCIE;                   //使能CCR0中断
    CCR0 = 4095;                    //设定周期1S               
    TACTL = TASSEL_1 + ID_3 + MC_1; //定时器A的时钟源选择ACLK,增计数模式


   init_uart1();



    _EINT();                        //使能全局中断
    LPM3;          //CPU进入LPM3模式
}




/*******************************************
函数名称:Timer_A
功    能:定时器A的中断服务函数
参    数:无
返回值  :无
********************************************/
#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A (void)
{  
     if(m==0)                                                                                //这部分是控制LED等交替点亮,方便我知道进入了中断
    {
    P2OUT =0xaa;
    }
    else
     P2OUT=0x55;
    m=!m;

    uart_print("hello_world",11);                                                  //我想每秒发送一个HELLO_WORLD
}


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
m8246500
2019-03-24 17:24
victoria_ 发表于 2016-9-3 20:12
我也出现了同样问题!而且单测试蓝牙模块的时候,手机APP发和电脑串口助手接收的不一样,.,不知道到底哪里出 ...

我可以了,问题出在了单片机和蓝牙的波特率不匹配上,你自己匹配一下

一周热门 更多>

相关问题

    相关文章