找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于蓝牙点灯的问题(含单片机源码)

[复制链接]
跳转到指定楼层
楼主
最近在学习蓝牙模块时遇到了点问题,恳求各位大佬帮我解答一下,谢谢了。。

问题:当我正接时,发送31,串口会返回1






当我反接的时候,发送31,led灯不亮,并且SPP蓝牙串口会返回 B1




源码如下:
#include<reg52.h>

typedef unsigned int uint;
typedef unsigned char uchar;
sbit led1 = P2^1;   //根据各位实际的单片机上的小灯硬件连接,随便选择一个即可
uint pass = 0;      //传递数据位

void UART_init()    //设置串行通信 本晶振为11.0592MHZ,其他的就自己算一下应该设置多少
{
      TMOD = 0x20;
      TH1 = 0xfd;
      TL1 = 0xfd;  //波特率9600
      SM0 = 0;  
      SM1 = 1;   // 串口工作方式1 10位异步
      REN = 1;  //串口允许接收
      TR1 = 1;
      EA = 1;
      ES =1 ;  //串口中断
}

int main()
{
       UART_init();  //波特率9600
       while(1)
       {
                    if(pass == 0x31)  
                         led1 = 0;  //本单片机P2^1为小灯
                    else
                         led1 = 1;
       }           
}

void UART_INTERRUPT() interrupt 4
{        
              pass = SBUF;
              RI = 0;   
              SBUF = pass;    //手机和蓝牙模块通讯时,我们可以打开电脑串口调试工具查看我们的发送值)
              while(!TI);
              TI = 0;  
}

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

使用道具 举报

沙发
ID:871393 发表于 2021-3-15 13:59 | 只看该作者
0x31就是1呀  0x31对应ascii码10进制的49
回复

使用道具 举报

板凳
ID:891745 发表于 2021-3-15 14:47 | 只看该作者
没问题啊,0x31对应ascii码10进制的49
回复

使用道具 举报

地板
ID:891306 发表于 2021-3-15 20:39 | 只看该作者
解决了,应该是我单片机基础不牢靠的问题,因为我的51单片机是12MHz的,但是在AT模式的时候我把蓝牙波特率设置为9600,这就会造成发送数据的时候乱码,所以LED灯不亮。
解决办法:将蓝牙进入AT模式配置它的波特率为4800(因为是12MHz,所以不能设置为9600)。

在此,衷心感谢各位大佬百忙之中为我解答问题
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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