| 
 
 
 这次带来一个通过 蓝牙调试器 点亮LED灯的教程。要使用手机点亮LED灯,你的工作分两部分。 手机点灯
 
 一、单片机端要做的工作
 1.1硬件连接
 首先确定连接方式: 
 
 
 
 LED灯有一长一短两个引脚,是分正极和负极的,比较长的那一个脚是正极,另一个是负极。当负极接地(GND 0V),正极接高电平电压时,LED灯会被点亮。如图中的“IO”引脚,是本次控制LED的引脚,这里我使用了PA6。当此引脚为高电平时,LED发光。关于蓝牙模块的连接细节我已在这里说明了,按照图中方式连接即可。1.2LED控制代码编写 由于STM32性能高,成本低且使用者多,因此采用STM32作为示例。首先要初始化一个IO口,这里初始化了PA6作为推挽输出。 void initLED(){   GPIO_InitTypeDef GPIO_InitStructure;   /* GPIOA  clock enable */   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);           GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 ;   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   GPIO_Init(GPIOA, &GPIO_InitStructure); }
 然后定义一个函数setLED,用来设置LED的状态。其实就是改变PA6的状态。当on为1时,PA6脚为高电平。 1.3数据包收发代码编写1.3.1配置数据包参数void setLED(unsigned char on){          GPIO_WriteBit(GPIOA,GPIO_Pin_6,on);}
 首先是在valuepack.h文件中配置通信数据包结构(文件在**末尾给出)。 /// 3.指定接收数据包的结构-----------------------------------------------------------------------------------//    根据实际需要的变量,定义数据包中 bool byte short int float 五种类型的数目   #define RX_BOOL_NUM  1  #define RX_BYTE_NUM  0 #define RX_SHORT_NUM 0 #define RX_INT_NUM   0 #define RX_FLOAT_NUM 0
 由于只是控制亮一个灯,因此配置一个Bool类型的开关量即可。 然后在main.c文件中操作。1.3.2创建接收数据包 RxPack rxpack; 
 因为不需要向手机回传状态,因此只需要创建一个RxPack即可。1.3.3初始化ValuePack initLED(); initValuePack(115200);
 同时把LED也初始化了,注意这里的115200不一定是你蓝牙模块的串口波特率,需要做相应修改。1.3.4读取数据包 // 接收数据 if(readValuePack(&rxpack)) setLED(rxpack.bools[0]);
 如果读取到数据包,则将数据包中的bool量赋给IO口,逻辑非常简单。五行代码搞定一切。二、手机端要做的工作2.1建立工程并配置数据 打开应用后,点击下方的“专业调试”图标,进入调试工程列表。然后点击“+”按钮添加一个工程。如图,我已经建立了“开关灯”这个工程。 
 
 
 然后点击开关灯工程(注意不要点三角),然后进入“通信设置”界面: 
 
 
 发送数据包结构应与单片机端的接收数据包结构一致,在单片机中只定义了一个bool类型的变量,因此这里也只添加一个bool类型的变量,并命名为“灯”。至此数据包的结构就配置完成了,是不是很简单?2.2编辑控件 在调试工程列表(主界面)中,点击“编辑控件”进入控件编辑界面,此时界面中没有任何控件: 
 
 
 点击上方的“+”,添加一个开关控件,此时弹出一个数据链接的界面 
 
 
 我们依次选择发送、bool。。点击图中的“不链接”,会发现还有“灯”这个选项,这正是我们刚才添加的变量。点击“灯”完成链接,然后点击灰色区域进入下一步。 
 
 
 
 
 
 此时要求你设置开关的开与关两种状态下,其链接的变量所对应的数值,开关不仅可以链接bool型变量,还可以链接其它如float、short之类的变量,我们可以通过这个对话框自由设置不同的值。这里由于链接的是bool类型的值,取值只有0或1,因此我们不做改动,点击OK按钮即可。然后你会发现一只开关孤零零地躺在面板上。 
 
 
 为了让它好受一点,我们把它放大,点击右上方的 框形的缩放按钮,然后手指在屏幕上滑动即可调整这个开关的大小。 
 
 
 如上图,控件的编辑基本就完成了。 然后去运行吧。2.3运行 确保将单片机的程序下载成功,且单片机串口波特率与蓝牙串口模块的波特率相同后,开始运行。 首先点击屏幕下方的“设备连接”按钮,进入设备选择界面,如果界面中为空的话,则点击界面下方的圆形按钮进行扫描。 
 
 
 等待扫描结果,如图,出现了lazydog这个设备,其名称是我改的,一般没有改动的蓝牙模块名称都是其型号的名称,如HC-05等。点击设备右边的“+”按钮,进行连接。如果提示配对就输入配对码配对,配对完了再次点击“+”进行连接。 连接成功后,进入“专业调试”界面,在列表中找到我们刚创建的调试工程,然后点击右方的运行按钮(三角),即可进入调试。至此,你就完成了所有的工作。相信整个过程不会超过半个小时,你就能学会这门魔法。 最后附上单片机代码 
 
 
 
 
 |