51只有片机 HC05蓝牙模块

当旁上行事

于齐同首文章《Git之不明觉厉3》中微微伙伴克隆了一个仓库,前面我们的操作都是于master分支上的,一般的话,我们进行一个新的做事,都急需建立一个新的branch,git的branch非常之大效率,所以可以数的创建及切换。但是说了这么多,到底什么才是branch啊?

同等、注意事项

分段是吗

A branch represents an independent line of development. Branches serve
as an abstraction for the edit/stage/commit process

从今字面上了解分支为是足以的,上面的英文翻译一下,分支就是千篇一律修单独的出线路。

Paste_Image.png

落得图的Little Feature,Master,Big
Feature都是子。图上的箭头指于了分的最后一个commit

1、烧写程序时,要拿蓝牙tx,rx信号线拔掉,对烧写程序来影响。

以分支

  1. 开创分支

git branch tiger

创建了一个名叫tiger的分支

  1. 查阅分支

git branch
  1. 切换分支

git checkout tiger
  1. 充实文件
    我们当初支行上交给一个文书。

echo "I like tiger" > tiger.txt
git add tiger.txt
git commit -m "create tiger file"
  1. 文件于master分支中设有也?
    我们可以看到文件在master中并无有,我们每创建一个新的branch,都发出一个新的working
    directory, staging area, and project history

Paste_Image.png

如我们查阅log,也会发觉master中莫tiger中的commit

2、执行HC05凑合命令时,均因\r\n结尾。串口中断而选择“发送新施行”时,不用添加\r\n。原理同。

合并

咱们现在切换回master分支之后,看不到tiger分支里面的改了,我们可以采用合并操作,来归并两只支行

git merge tiger

今我们好看看文件tiger.txt了

Paste_Image.png

merge有点儿栽样式,我们看一下

  • fast-forward merge

Paste_Image.png

咱们于上图可以观看master到some
feature有相同长路线可移动,只有走master的HEAD就足以了

  • 3-way merge

Paste_Image.png

于图及足看,master向前没有同长长的线路可运动至some
feature,所以创建一个初的commit,把master的HEAD移动过去。上图的红圈表示三个commit合成了最后merge的commit
详细资料可以查看git-merge

仲、准备软硬件

删除

咱俩切换到master了,如果以为tiger分支没有就此,那么好去除其

git branch -d tiger

1、硬件:单片机STC89C52RC开发板,蓝牙模块HC05

2、软件:串口工具SSCOM3.3,手机蓝牙客户端

   
 手机蓝牙客户端链接:http://mobile.baidu.com/simple/item?docid=5014650&source=aladdin@wise\_app\_13@button&from=1015530c&ala=wise\_app@strong@蓝牙串口调试助手&go\_bfe=1action=content&action=content

其三、蓝牙模块HC05端口定义(6引脚)

state——蓝牙连接状态,未连接输出低,连接后输出大

TX——信号发

RX——信号收

GND——地

+5V

EN——使能端,需要进入AT模式时连3.3V,接就片机i/o引脚即可,高电平

季、进入AT模式进行参数与状态的装置

些微种植工作模式:命令响应工作模式和活动连续工作模式

指令响应工作模式(AT模式)

state——接任意单片机i/o

rx——接usb转串口的tx端,P3^0

tx——接usb转串口的rx端,P3^1

gnd——接地

5v——接5V电

en——接任意单片机i/o,高电平

1、需要接通en,并让大电平

2、通信线路:电脑–>usb转差口–>hc05蓝牙模块(电脑以及蓝牙模块间展开串口传输)

3、按停蓝牙模块的key键不放宽,单片机开发板上电,蓝牙模块指示灯进入慢闪状态,说明上AT模式

4、通过计算机串口工具得以设置蓝牙的行事参数与状态

5、执行电脑串口工具SSCOM3.3,设置比特率38400,8个数据,1位停止位

6、发送测试指令AT\r\n,如果回去OK表示通信正常。

7、可以实行好所需要的一声令下了。

8、发送过来默认状态令AT+ORGL\r\n,如果回去OK表示设置成。

出厂默认状态:

①.设备类:0

②.查询码:0x009e8b33

③.模块工作角色:Slave Mode

④.总是模式:指定专用蓝牙设备连模式

⑤.串口参数:波特率—38400bits/s;停止位:1位;校验位:无

⑥.配对码:“1234”

⑦.设备名称:“H-C-2010-06-01”

..

9、设置波特率9600与单片机串口匹配,1悬停止位,0校验位

· 执行AT+UART=9600,1,0\r\n。返回OK

10、查看UART状态是不是变动成,执行AT+UART?,返回+UART:9600,1,0  OK

11、参数状态设置完,可断电,准备进工作模式

五、进入活动连续工作模式开展蓝牙匹配

state——接任意单片机i/o

rx——接单片机的tx端,P3^1,与命令相应模式相反

tx——接单片机的rx端,P3^0

gnd——接地

5v——接5V电

en——可不接

1、不待接通en

2、通信线路:手机蓝牙控制端–>hc05蓝牙模块–>单片机

3、单片机开发板上电,蓝牙模块指示灯进入快闪状态,说明上机关连续工作模式

4、手机开始蓝牙,即可搜到蓝牙模块,连接

5、打开手机端蓝牙串口工具,连接成,蓝牙模块指示灯进入双闪状态

6、至此连接成,准备发送数据

 

#include <reg52.h>

void main(void)

{

while(1);

}

设置参数状态,匹配测试用上述几行代码即可。

 

五、利用蓝牙向单片机发送数据

1、通信线路:手机蓝牙控制端输出字符‘0’–>hc05蓝牙模块–>单片机接收字符‘0’(单片机与蓝牙模块间进行串口传输)–>单片机控制灯1亮

2、通信线路:手机蓝牙控制端输出字符‘1’–>hc05蓝牙模块–>单片机接收字符‘1’(单片机与蓝牙模块间进行串口传输)–>单片机控制灯2来得

3、通信线路:手机蓝牙控制端输出其它字符–>hc05蓝牙模块–>单片机接收该字符(单片机与蓝牙模块间展开串口传输)–>单片机控制灯3显示

4、该程序源码

#include <reg52.h>

typedef unsigned char u8;
typedef unsigned int u16;
u8 r_buf; //蓝牙接收到的字符存储缓冲区
sbit led1 = P1^0; //灯1,当接收字符0时,灯1亮
sbit led2 = P1^1; //灯2,当收到字符1时,灯2形
sbit led3 = P1^2; //灯2,当接受其它字符时,灯3显得
sbit led4 = P1^3; //蓝牙连接状态灯,当蓝牙连接时,灯4显
sbit state = P3^6; //蓝牙连通的状态标志位
void delay(u16 z) //延迟函数
{  
u16 x,y;  
for(x=z;x>0;x–)   
for(y=125;y>0;y–); 

void InitUART() //串口初始化9600
{
//初始化串口定时器9600
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;   
       TH1 = 0xFD;
       TL1 = 0xFD;
TR1 = 1;
ES = 1;
EA = 1;
}
void SendOneByte(unsigned char c) //发送字符函数
{
    SBUF = c;
    while(!TI);
    TI = 0;
}
void main(void)
{
    InitUART();
led1 = 1;
led2 = 1;
led3 = 1;  
led4 = 1;
r_buf = ‘2’;
while(1)
{
if(state == 1)//蓝牙连通状态判断
{
led4 = 0;    //如果蓝牙匹配成功,灯4亮
}
else
{
led4 = 1;    //如果蓝牙匹配不成事,灯4勿出示
}
}
}
void UARTInterrupt(void) interrupt 4 //串口接收字符
{
    if(RI)
    {
        RI = 0;
        //add your code here!
r_buf = SBUF;
if(r_buf == ‘0’)//如果也字符‘0’,灯1亮
{
led1 = 0;
delay(1000);
led1 = 1;
}
if(r_buf == ‘1’)//如果啊字符‘1’,灯2著
{
led2 = 0;
delay(1000);
led2 = 1;
}
else //如果为另外字符,灯3形
{
led3 = 0;
delay(1000);
led3 = 1;
}
   SendOneByte(r_buf);//回发该字符
    }
}