这次带来一个通过 蓝牙调试器 点亮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脚为高电平。 void setLED(unsigned char on){ GPIO_WriteBit(GPIOA,GPIO_Pin_6,on);} 1.3数据包收发代码编写1.3.1配置数据包参数首先是在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初始化ValuePackinitLED(); 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等。点击设备右边的“+”按钮,进行连接。如果提示配对就输入配对码配对,配对完了再次点击“+”进行连接。 连接成功后,进入“专业调试”界面,在列表中找到我们刚创建的调试工程,然后点击右方的运行按钮(三角),即可进入调试。至此,你就完成了所有的工作。相信整个过程不会超过半个小时,你就能学会这门魔法。 最后附上单片机代码
|