微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 蓝牙通信问题

蓝牙通信问题

时间:10-02 整理:3721RD 点击:
我想两块单片机之间蓝牙通信。单片机用的c52,蓝牙用的hc05和06.把程序分别下载进去之后,将两块单片机的rxd和txd直接用线反接可以达到效果。但是换成蓝牙之后就不行了,蓝牙配对正常。我不知道蓝牙的波特率是多少,两块单片机的串口波特率一致。
发送数据的单片机
#include <reg51.h>
#include <dulianjian_diceng.H>

void InitUART()
{
   SCON = 0x50;                                //串口工作方式1
   TMOD = 0x20;                                //定时器工作方式2
   PCON = 0x80;                                //波特率加倍
   TH1 = 0xF3;                                //波特率4800
   TL1 = 0xF3;                                //波特率4800
   ES=1;                                        //打开接收中断
   EA=1;                                        //打开总中断
   TR1=1;                                        //打开计数器
}       
void main ()
{
  InitUART();
  while(1)
  {
  }
}

void UARTInterrupt() interrupt 4
{
   unsigned char receivedata;
   unsigned int a;
   a=dulianjian();
   if(a==2)
   receivedata = 'b';
   if(a==3)
   receivedata = 'c';
   if(a==4)
   receivedata = 'd';
//   receivedata = SBUF;        //SBUF作为接收缓冲器
//   RI = 0;                                //接收中断标志位复位
   SBUF = receivedata;        //SBUF作为发送缓冲器
   while(!TI);                        //等待数据发送完成
   TI = 0;                                //发送中断标志位复位
}

接收数据的单片机
#include <reg51.h>
#include <7wsmg_diceng.H>
void InitUART()
{
   SCON = 0x50;                                //串口工作方式1
   TMOD = 0x20;                                //定时器工作方式2
   PCON = 0x80;                                //波特率加倍
   TH1 = 0xF3;                                //波特率4800
   TL1 = 0xF3;                                //波特率4800
   ES=1;                                        //打开接收中断
   EA=1;                                        //打开总中断
   TR1=1;                                        //打开计数器
}       
void main ()
{
  InitUART();
  while(1)
  {
  }
}
void UARTInterrupt() interrupt 4
{
   unsigned char receivedata;

   receivedata = SBUF;        //SBUF作为接收缓冲器
   while(!RI);                        //等待数据接收完成
   RI = 0;                                //接收中断标志位复位

   if(receivedata=='b')
   {
      xianshishuzi(10);          //消隐
          shuziweishu(8);          //第几位显示
      xianshishuzi(1);    //显示什么数字
      delay(50);                  //延时
   }
   if(receivedata=='c')
   {
      xianshishuzi(10);          //消隐
          shuziweishu(8);          //第几位显示
      xianshishuzi(2);    //显示什么数字
      delay(50);                  //延时
   }
   if(receivedata=='d')
   {
      xianshishuzi(10);          //消隐
          shuziweishu(8);          //第几位显示
      xianshishuzi(3);    //显示什么数字
      delay(50);                  //延时
   }
//   SBUF = receivedata;        //SBUF作为发送缓冲器
//   while(!TI);                        //等待数据发送完成
//   TI = 0;                                //发送中断标志位复位
}       

蓝牙的波特率默认9600~

蓝牙的波特率被调过
34脚是蓝牙模块的哪个脚
我用蓝牙测试软件有问题,用不了

最新进展,现在怎么办


我也不知道这个是零几了
一个型号是fc-114
一个型号是zs-040
百度不到啊
我用的师兄用过的,没有原始资料

问题已经解决了

怎么解决的可以透露一下吗?34脚是哪个脚?

忘了怎么解决的了。
我用的是师兄的,这一块和网上的不太一样

小编如果你能看见我的回复,麻烦你帮个忙。我现在用的是zs-040蓝牙模块,只是没有at指令集,希望你能发给我一份。若有教程就更好了。先谢了!

一年之前的了,我都忘了。

先可以调试下硬件链路,在确认无线没有问题

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top