求大神帮忙看看,关于蓝牙控制小灯的
蓝牙返回错误
#include<reg52.h>
#include<string.h>
#define uchar unsigned char
#define uint unsigned int
sbit power=P2^0; //定义控制端口
uchar uart_data,flag;
//void fanhui(void);
//uchar table[]="32";
uchar temp;
void delay();
uint i,j;
//double a=35.6;
void main(void)
{
SCON=0X50; //设置串口,方式为1
TMOD=0X20; //设置为定时器1为工作方式2
TH1= 0x0FD; //初值,9600波特率
TL1= 0x0FD;
ES=1; //开串口中断
EA=1; //开总中断
TR1=1;
REN=1; //启动定时器
power=1; //P2.0为高,灯灭
//while(1);
while(1)
{
if(flag==1)
//temp=0x01;
{
ES=0;
flag=0;
SBUF='O'; //单片机往串口返回“O”字符
//delay();
while(!TI);
TI=0;
//ES=1;
SBUF='K'; //单片机往串口返回“K”字符
//delay();
while(!TI);
TI=0;
//ES=1;
SBUF='!'; //单片机往串口返回“!”字符
//delay();
while(!TI);
TI=0;
ES=1;
}
/*if(flag==2)
{
ES=0;
flag=0;
SBUF='0';
while(!TI);
TI=0;
SBUF='2';
while(!TI);
TI=0;
ES=1;
}*/
}
}
void serial_IT(void) interrupt 4
{
if(RI==1) //R1置1,向CPU申请中断,循环
{
RI=0; //软件清零,取消申请
uart_data = SBUF;
temp=uart_data; //蓝牙输入数据赋值
flag=1;
//SBUF = uart_data; //返回终端
//temp = uart_data; //赋值
if(temp==0x01)
{
power=0;
flag=1; //返回1标志位
}
//fanhui();
//while(!TI);
//TI=0;
if(temp==0x00)
{
power=1;
//flag=2; //返回2标志位
}
}
//delay();
//EA=0;
//fanhui();
//SBUF=uart_data;
//while(!TI);
//TI=0; //中断关闭
//EA=1;
//T1 = 0;
}
void delay() //延时
{
for(i=0;i<10;i++)
for(j=0;j<100;j++);
}
第二个字符会把第一个字符覆盖,,为什么呢。
这个是是在手机平台下控制台灯的状态的吗 ?
嗯,可以说是的
那手机平台上怎么调试的?是用下载APP来调试吗