在使用HC-04蓝牙模块的时候,从测试架上测试是正确的,但是在移植到51单片机开发板的时候就不行了,发送的数据无法运行,用串口助手看见返回值都是汉字的乱码的,测试指令与ASCCII都是乱码,代码没办法使用。运行不了
连接图片如下:
#include<reg52.h>
typedef unsigned int uint;
typedef unsigned char uchar;
sbit led0 = P1^0;//根据各位实际的单片机上的led灯位来设置
sbit led1 = P1^1;
sbit led2 = P1^2;
sbit led3 = P1^3;
sbit led4 = P1^4;
sbit led5 = P1^5;
sbit led6 = P1^6;
sbit led7 = P1^7;
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 == 0x30)//0的ascaII码是48,转换为16进制是30,即0x30 蓝牙通信都是发送ASCII码
{
pass++;//点亮第一个led灯0x31
}
if(pass==0x39)//输入八次后返回点亮第一个灯
{
pass=0x31;
}
switch (pass)
{
case 0x31:led0 = 0;break;
case 0x32:led1 = 0;break;
case 0x33:led2 = 0;break;
case 0x34:led3 = 0;break;
case 0x35:led4 = 0;break;
case 0x36:led5 = 0;break;
case 0x37:led6 = 0;break;
case 0x38:led7 = 0;break;
case 0x39:P2 = 0xfe;break;
default:P2 = 0xff;break;//输入其他P2接口全为高电平灯全灭
}
}
}
void UART_INTERRUPT() interrupt 4
{
pass = SBUF;
RI = 0;
SBUF = pass; //手机和蓝牙模块通讯时,我们可以打开电脑串口调试工具查看我们的发送值)
while(!TI);
TI = 0;
}
烧录和报错均是0个错误与警告
在看了原理手册后尝试在按住蓝牙模块的按键后给电但是没有效果,
请问这是HC-04的使用方法错了还是怎么回事呢谢谢您的回答