700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > hc06蓝牙模块接51单片机点亮LED

hc06蓝牙模块接51单片机点亮LED

时间:2018-11-12 01:12:46

相关推荐

hc06蓝牙模块接51单片机点亮LED

C语言代码:

/*-----------------------------------------------------------------------------* 实 验 名 : 串口通信试验 - 蓝牙HC06模块* 实验说明 : 单片机串口接收数据控制灯亮灭* 注 意 : 该试验使用的晶振是11.0592* 接 口 : 单片机的P3^1(TXD)接HC06的RXD 单片机P3^0(RXD)接HC06的TXD HC06的VCC接3.3V HC06的GND接单片机的GND*******************************************************************************/#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar over[10] = {0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c};//--定义使用的IO--//sbit LED=P2^0;sbit LED1=P2^1;//--声明全局函数--// void UsartConfiguration();void Delay_1ms(uint i);/********************************************************************* 名称 : Com_Int()* 功能 : 串口中断子函数* 输入 : 无 * 输出 : 无***********************************************************************/void Com_Int(void) interrupt 4{uchar i;uchar receive_data;EA = 0;if(RI == 1) //当硬件接收到一个数据时,RI会置位{RI = 0;receive_data = SBUF;//接收到的数据if(receive_data == 1) {LED =0;//接收到1亮灯}else{LED1 =0; //其他情况灯灭}}for(i=0; i<10; i++){SBUF = over[i]; //将要发送的数据放入到发送寄存器while(!TI); //等待发送数据完成TI=0; //清除发送完成标志位Delay_1ms(1);}EA = 1;}/******************************************************************************** 函 数 名 : main* 函数功能 : 主函数* 输 入 : 无* 输 出 : 无*******************************************************************************/void main(){UsartConfiguration();//初始化串口while(1);}/******************************************************************************** 函 数 名 : UsartConfiguration()* 函数功能 : 设置串口* 输 入 : 无* 输 出 : 无*******************************************************************************/void UsartConfiguration(){SCON=0X50;//设置为工作方式1,8位数据,可变波特率TMOD=0X20;//设置计数器工作方式2PCON=0X00;//波特率不加倍TH1=0XFd; //计数器初始值设置,9600@11.0592MHzTL1=0XFd;TR1=1;//打开计数器ES = 1; //开串口中断EA = 1; //开总中断}/********************************************************************* 名称 : Delay_1ms()* 功能 : 延时子程序,延时时间为 1ms* x * 输入 : x (延时一毫秒的个数)* 输出 : 无***********************************************************************/void Delay_1ms(uint i)//1ms延时{uchar x,j;for(j=0;j<i;j++)for(x=0;x<=148;x++);}

ERROR

上述代码在测试时出现以下错误:

总体上匹配成功,数据也可以发送接收成功,但是发现一个奇怪的问题,有时候发送一个一字节的数据,低四位正常接收,高四位接受异常。

比如HC06发送0x10 ,手机接受为0x30;HC06发送0x73,手机接受为0xb3

别人的解决方法:

解释1解释2

我不太清楚那个是对的,我也不知道解决方法。

其他的HC06说明:

/ble_hc_06_pinout.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。