打印

MSP430通过蓝牙CC2540进行串口通信问题

[复制链接]
756|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Ryze|  楼主 | 2017-1-31 19:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚刚接触单片机和蓝牙,自己出于兴趣在做一个小的东西。今天在调一个代码,我想让单片机每秒发送一个是字符串,然后用手机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
}

相关帖子

沙发
Varus| | 2017-1-31 19:50 | 只看该作者
首先你串口打印的东西是否正确?uprintf(),这个你可以模拟仿真看到,或是找个usb-232,在串口终端看到。

使用特权

评论回复
板凳
Snow7| | 2017-1-31 20:03 | 只看该作者
蓝牙模块就是一个串口透传的东西,只要串口数据正确,收到的内容不会有问题,如果串口保证输出内容正确,那问题应该在app上吧,用他们给的app试着看看数据对不对。

使用特权

评论回复
地板
android2| | 2017-1-31 20:12 | 只看该作者
有个很好用的蓝牙软件叫lightblue ,iOS系统有这个,安卓我不知道有没有这个,很强大的功能,可以先用这个

使用特权

评论回复
5
拉克丝| | 2017-1-31 20:23 | 只看该作者
软件扫描你的设备,然后再看接受到的数据对不对,如果lightblue接受的不对的话,就是你的蓝牙发出来的问题,如果lightblue接受正确,就是你的APP的问题,(lightblue支持不同类型的数据接受可以设置的)

使用特权

评论回复
6
309030| | 2017-1-31 20:36 | 只看该作者
程序写的有没有问题??

使用特权

评论回复
7
迪卡| | 2017-1-31 20:52 | 只看该作者
可能标志位没设正确

使用特权

评论回复
8
米尔豪斯| | 2017-1-31 21:15 | 只看该作者
会不会波特率不匹配

使用特权

评论回复
9
lefeng| | 2017-1-31 21:29 | 只看该作者
存在表示物理层没问题,但是乱码,那就是链路层的问题了。

使用特权

评论回复
10
backlugin| | 2017-2-1 21:16 | 只看该作者
没有接收到数据了。

使用特权

评论回复
11
backlugin| | 2017-2-1 21:17 | 只看该作者
串口数据接收不到,你用示波器测量一下。

使用特权

评论回复
12
usysm| | 2017-2-2 22:09 | 只看该作者
程序不是有问题,可能不稳定造成的

使用特权

评论回复
13
usysm| | 2017-2-2 22:17 | 只看该作者
最开始初始化的时候,先将IO设置。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

121

主题

714

帖子

1

粉丝