找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1768|回复: 1
打印 上一主题 下一主题
收起左侧

蓝牙接收问题

[复制链接]
跳转到指定楼层
楼主
ID:105624 发表于 2016-5-3 11:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用手机通过蓝牙和12C5A60S2单片机进行通信,读取单片机采集的时间,但是经过测试单片机接收不到手机发的数据,单独的蓝牙程序是可以接收到的,这是拿的问题呢?下面是关于蓝牙的许程序
  1. */#include <reg51.h>
  2. #include <intrins.h>
  3. #include "bluetooth.h"
  4. unsigned char tmp = 0;

  5. void blueinit()        //串口初始化
  6. {
  7. //                   ES=0;                                                                  //关中断
  8. //                  SCON = 0x50;                        // REN=1允许串行接受状态,串口工作模式1,
  9. //                                                                                          //10位UART(1位起始位,8位数据位,1位停止位,无奇偶校验),波特率可变
  10. //
  11. //                  TMOD = 0x20;                        // 定时器1工作于方式2,8位自动重载模式, 用于产生波特率
  12. //          TH1=TL1=0xFD;                       // 波特率9600 (本次测试采用晶振为11.0592)
  13. //         
  14. //          PCON &= 0x7f;                       // 波特率不倍增
  15. //          TR1 = 1;                                                          //定时器1开始工作,产生波特率
  16. //                                                                                          //发送标志位置0
  17. //                  TI=0;                                                                  //接收标志位置0
  18. //                  RI=0;
  19. //                  
  20. //                  EA=1;                                                                //中断允许
  21. //              ES=1;       
  22.         TMOD|=0X20;       //定时器1作为波特率发生器,方式2自动重装载,9600(晶振11.0592)
  23.         TH1=0XFD;
  24.         TL1=0XFD;
  25.         TR1=1;
  26.        
  27.         REN=1;            //串口接收允许
  28.         SM0=0;            //(SM0,SM1):0,1 方式1,十位数据通信起始位、八位数据、停止位,无奇偶校验位
  29.         SM1=1;      
  30.        
  31.         ES=1;             //允许串口中断
  32.         EA=1;             //中断允许                                                        //允许串口中断


  33. }

  34. /*------------------------------------------------
  35.                     发送一个字节
  36. ------------------------------------------------*/
  37. void SendByte(unsigned char dat)
  38. {
  39. SBUF = dat;
  40. while(!TI);
  41.       TI = 0;
  42. }
  43. /*------------------------------------------------
  44.                     发送一个字符串
  45. ------------------------------------------------*/
  46. void SendStr(unsigned char *s)
  47. {
  48. while(*s!='\0')// \0 表示字符串结束标志,
  49.                 //通过检测是否字符串末尾
  50.   {
  51.   SendByte(*s);
  52.   s++;
  53.   }
  54. }
  55. void time1_interrupt() interrupt 4
  56. {
  57.         RI=0;
  58.         tmp=SBUF;       
  59. }
复制代码
  1. /******************************************************************************
  2. *函数名称:void app_control()
  3. *函数功能:手机查询函数                                                                                        
  4. *输入参数:无               
  5. *输出参数:无
  6. *返回值:无
  7. *******************************************************************************/
  8. void app_control()
  9. {       
  10.         if(tmp != 0x00)
  11.         {
  12.                 if(tmp == 0x01)
  13.                 {
  14.                         SendStr("CO:");
  15.                         SendByte(ppm / 1000+0x30);
  16.                         SendByte(ppm % 1000 /100+0x30 );
  17.                         SendByte(ppm % 1000 % 100 /10+0x30 );
  18.                         SendByte(ppm % 10+0x30 );
  19.                         write_charstr( 0,2,"  ");
  20.                        
  21.                        
  22.                         tmp = 0x00;                                //发送后数据清零
  23.                 }
  24.                 if(tmp == 0x02)
  25.                 {
  26.                         SendStr("Time:");
  27.                         SendByte(Year/10+0x30);
  28.                         SendByte(Year%10+0x30);
  29.                         SendByte(Month/10+0x30);
  30.                         SendByte(Month%10+0x30);
  31.                         SendByte(Day/10+0x30);
  32.                         SendByte(Day%10+0x30);
  33.                         SendByte(Hour/10+0x30);
  34.                         SendByte(Hour%10+0x30);
  35.                         SendByte(Minute/10+0x30);
  36.                         SendByte(Minute%10+0x30);
  37.                        
  38.                         tmp = 0x00;                                        //发送后数据清零
  39.                 }
  40.                 if(tmp == 0x03)
  41.                 {
  42.                         SendStr("Alarm threshold :");
  43.                         SendByte(Key_Num/100+0x30);
  44.                         SendByte(Key_Num/100%10+0x30);
  45.                         SendByte(Key_Num%10+0x30);
  46.                        
  47.                         tmp = 0x00;                                        //发送后数据清零
  48.                 }
  49.         }
  50. }
复制代码
请大神指导


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:115990 发表于 2016-5-3 19:08 | 只看该作者
用于什么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表