标题: 手机连接hc05蓝牙后乱码问题 [打印本页]

作者: T3不是大腿    时间: 2020-3-2 16:39
标题: 手机连接hc05蓝牙后乱码问题
我用的时hc05想和stc15通讯,配置了
TMOD = 0X11;
TH0=0XD8;  //T0初值
TL0=0XF0;
TH1=0;   //T1初值
TL1=0;
EA=1;  //开启总中断
TR0=1;
ET0=1;  //允许T0中断
ET1=1;  //允许T1中断
ES=1;  //允许串口中断
  SCON=0X50;   //蓝牙
  PCON=0X80;  //蓝牙
SM0=0;
SM1=1;




还弄了个中断
void zhongduan() interrupt 4
{
i=SBUF;
RI=0;
}

但手机连接的时候却接收到了很多乱码,想知道咋回事,看了些帖子也没有我这种情况的......

作者: hhdsdy    时间: 2020-3-2 17:19
蓝牙模块发送接收的数值是hex的还是ASCII的?这两个没设置对的话绝对乱码
作者: 黎明初至    时间: 2020-3-2 17:31
波特率配置看看是否一致。
作者: 流星2019    时间: 2020-3-2 17:37
检查下波特率错了没,波特率错了是会乱码的
作者: T3不是大腿    时间: 2020-3-3 09:12
黎明初至 发表于 2020-3-2 17:31
波特率配置看看是否一致。

我是用的手机蓝牙串口,蓝牙也是默认9600波特率
作者: T3不是大腿    时间: 2020-3-3 09:12
流星2019 发表于 2020-3-2 17:37
检查下波特率错了没,波特率错了是会乱码的

我是用的手里蓝牙串口,蓝牙是默认9600波特率
作者: T3不是大腿    时间: 2020-3-3 09:13
hhdsdy 发表于 2020-3-2 17:19
蓝牙模块发送接收的数值是hex的还是ASCII的?这两个没设置对的话绝对乱码

我想发的是16进制,发过去的也是0x01啥的
作者: T3不是大腿    时间: 2020-3-3 09:41
hhdsdy 发表于 2020-3-2 17:19
蓝牙模块发送接收的数值是hex的还是ASCII的?这两个没设置对的话绝对乱码

额我在手机上设置的发送16进制,接收16进制
作者: T3不是大腿    时间: 2020-3-3 09:46
啊啊啊我知道为什么了,RXD和TXD接反了
作者: brew9    时间: 2020-3-3 10:29
检查一下你代码中下面两组数据,很可能不对,要不你把Focs提供一下。
TH0=0XD8;
TL0=0XF0;
作者: haierzaifei11    时间: 2020-3-3 10:31
蓝牙模块发送接收的数值是hex的还是ASCII的
作者: T3不是大腿    时间: 2020-3-3 21:18
brew9 发表于 2020-3-3 10:29
检查一下你代码中下面两组数据,很可能不对,要不你把Focs提供一下。
TH0=0XD8;
TL0=0XF0;

#include "REG51.h"
#include "oled.h"
#include "bmp.h"
unsigned char i;  //蓝牙变量

int main(void)
{       
         
        TMOD = 0X11;
        TH0=0XD8;  //T0初值
        TL0=0XF0;
        TH1=0;   //T1初值
        TL1=0;
        EA=1;  //开启总中断
        TR0=1;
        ET0=1;  //允许T0中断
        ET1=1;  //允许T1中断
        ES=1;  //允许串口中断
        SCON=0X50;   //蓝牙
      PCON=0X80;         //蓝牙
        SM0=0;
        SM1=1;
}

void zhongduan() interrupt 4
{
        i=SBUF;
        RI=0;
        SBUF=i;
        while(!TI);
        TI=0;
}
这是我的完整程序,前面多出来两个头文件是OLED的,TL1是超声波的,没用上
作者: brew9    时间: 2020-3-7 10:57
STC15单片机默认用T2做波特率发生器,你这程序寄存器配置不对。
要想把问题搞明白,你还得提供内部晶振工作频率(Focs)。

另外,
SCON=0X50;   //蓝牙
上面这句已经包含了SM0=0; SM1=1;
作者: xianming    时间: 2020-3-7 15:41
stc15单片机串口是默认用T2定时器的,用T0需要另外设置,这些手册上都有,stc-isp软件上也有例程,stc15的串口和以前的不太一样。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1