51单片机代码发送指令给HC-05蓝牙模块遇到问题,有用过蓝牙模块的大神烦请帮忙看看
时间:10-02
整理:3721RD
点击:
希望实现的功能是51单片机自动向蓝牙模块发送指令并配置成功。现在测试的代码是发送AT,应该是返回ok,但是没有收到
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar a[4]={0,0,0,0},i;
sbit led0=P1^0; //用于表示发送完成
sbit led7=P1^7; //用于表示接受成功
void delay(uint a)
{
uint b,c;
for(b=a;b>0;b--)
for(c=110;c>0;c--);
}
void main()
{
TMOD=0x20;
TH1=0xfd;
TH2=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
delay(100);
ES=1;
i=0;
delay(1000);
SBUF=0x41; //对应字符‘A’
while(!TI);
TI=0;
SBUF=0x54; //对应字符‘T’
while(!TI);
TI=0;
SBUF=0x0D; //对应‘\r’
while(!TI);
TI=0;
SBUF=0x0A; //对应‘\n’
while(!TI);
TI=0;
led0=0;
delay(1000);
if(a[0]=='O'&&a[1]=='K')
{
led7=0;
i=0;
}
while(1);
}
void serial() interrupt 4
{
if(RI)
{
a=SBUF;
i++;
RI=0;
}
}
led0能亮,led7不能亮,用串口调试助手查询蓝牙的名字,没有修改成功
补充内容 (2016-10-31 19:29):
最后说错了,这里没有发送修改名字的指令,这里只是led7没亮。在我自行测试发送修改名字的指令时,没有修改成功名字。
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar a[4]={0,0,0,0},i;
sbit led0=P1^0; //用于表示发送完成
sbit led7=P1^7; //用于表示接受成功
void delay(uint a)
{
uint b,c;
for(b=a;b>0;b--)
for(c=110;c>0;c--);
}
void main()
{
TMOD=0x20;
TH1=0xfd;
TH2=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
delay(100);
ES=1;
i=0;
delay(1000);
SBUF=0x41; //对应字符‘A’
while(!TI);
TI=0;
SBUF=0x54; //对应字符‘T’
while(!TI);
TI=0;
SBUF=0x0D; //对应‘\r’
while(!TI);
TI=0;
SBUF=0x0A; //对应‘\n’
while(!TI);
TI=0;
led0=0;
delay(1000);
if(a[0]=='O'&&a[1]=='K')
{
led7=0;
i=0;
}
while(1);
}
void serial() interrupt 4
{
if(RI)
{
a=SBUF;
i++;
RI=0;
}
}
led0能亮,led7不能亮,用串口调试助手查询蓝牙的名字,没有修改成功
补充内容 (2016-10-31 19:29):
最后说错了,这里没有发送修改名字的指令,这里只是led7没亮。在我自行测试发送修改名字的指令时,没有修改成功名字。