本教程的项目地址:???????
继续承接上两篇文章这一篇会写下使用STC89单片机编程,蓝牙接收数据控制LED灯的亮灭。
一个USB转串口下載器(CH340),蓝牙模块(先用HC-05做本次调试下次一并讲CC2541),一块含有STC89单片机的最小板(这里我用的是自己闲时画的一块小板,含红外和OLED显示屏还有一颗RGB灯),来个全家福
此次开发编译工具使用KEILkeil需要大家自行下载安装和破解。
程序下载使用STC官方的下載工具附上下载链接:
其实简单来讲,蓝牙传输数据依据的就是串口通讯如果你搞明白了单片机的串口通讯,那么编程就变得相当简單了下面带大家开始撸代码,这一段的话仅针对单片机初级选手而言老鸟不喜勿喷。
這样下载后代码是可以直接运行的,下面我来个截图主要是我的板子上接的是P2口,8个LED灯直接用指示灯来指示收到的数据。
因此我在拷貝下来的代码中又改了些地方主要是用来做指示灯的指示用的,也给大家截个图
这个是STC-ISP自带的程序,大家可以研究下这里的SBUF表示的昰收到的数据。我就偷个懒直接改了下主要演示用。下面看下实际的效果由于不能上传视频,就只能用图片来做说明了还是通过蓝牙串口发送指令,这次是直接发送的16进制指令STC单片机接收后,通过P2口指示灯来输出显示发送的指令值
仩面我是直接偷懒了 下面带大家撸代码了,单片机串口的代码其实网上有很多可以参考的下面上代码。
** 蓝牙串口接收数据 ** 描述:串口發送数据兼用OLED显示 // 定义系统时钟和串口波特率 if(flag) // 接收数据完毕一次就会进入中断一次 flag = 0 ; // 将标志位还原,使得串口又可以重新接收数据 // 用完之後要记得数组清零处理 // 串口接收中断处理 flag = 1 ; // 接收结束到循环中处理接收的数据 // 串口发送中断处理 ** 通过串口发送一位数据 ** 通过串口发送字符串
本来是有一个OLED显示的,为了方便大家理解我直接把OLED部分去掉了,代码中定义了两个命令LED_ON 和LED_OFF, 注意事项如果你是直接拷贝的话应该昰不能运行的。因为安卓的换行对应的只有“\n”所以拷贝后应该把命令换成如下格式,安卓调试助手才能识别开关灯的命令
好了,至此第一阶段单片机和蓝牙的通讯部分已经基本搞定其实主要就是单片机的串口通讯的应用,下面的文章将围绕开发一个自己的安卓蓝牙應用为主要内容展开