用STC89C52连接Phyphox(蓝牙)
用STC89C52连接Phyphox(蓝牙)
STC89C52RC连接Phyphox的桥梁是蓝牙BLE,必须是低功耗蓝牙,常见的蓝牙HC-08就是这种规范的。如果使用了其他非低功耗BLE蓝牙,Phyhox不会识别它,也就不能实现51单片机到Phyphox的连通。
在连接Phyphox之前,我们需要使用USB2TTL模块、串口调试助手等工具调试HC-08模块,目的如下:
(1)设置蓝牙名称,当打开Phyphox的时候,Phyphox可以通过蓝牙名称来连接;
(2)设置波特率,当STC89C52RC进行串口通信的时候,它以指定的波特率向串口发送数据,蓝牙必须以相同的波特率来中转这些数据,否则就会出现乱码,或通信失败;
(3)找出蓝牙透传特征码,这些特征码将作为Phyphox端接收或反向发送数据的唯一标志,没有这个特征码,无法实现透传。
再列一遍需要的工具:
(1)USB2TTL,多数51单片机的烧录器就是;
(2)SSCOM 5.13串口调试助手,用来与蓝牙BLE对话;
(3)蓝牙BLE模块,这里使用的是HC-08;汇承的蓝牙较为常用的有02、05、06等,但只有08才对Phyphox可用;
(4)还有一个重要的蓝牙调试工具,安装在安卓手机上的,蓝牙调试器,可以在
https://www.jianshu.com/p/1a8262492619
下载到。基本就这些,当然有一份HC-08蓝牙4.0BLE串口模块用户手册.pdf最好,没有也没有关系,我们一会要使用HC-08的AT命令,有手册方便一些。
下面调试开始。
1、接线。如图。注意两点,一个是RXD、TXD必须要反接,第二是蓝牙的KEY引脚要接上电压,这里接的是3V3,意思是把它的电平拉高,进入AT命令状态,不接这个引脚是不能进入AT模式的。
图1
还有一个state引脚,这个引脚一般用于反馈蓝牙状态,比如连接一个LED,通过LED闪烁的情况来判断蓝牙工作在什么状态下。所以一些实际应用会连接它,并且在KEY上接一个按键,用来手动控制让蓝牙工作在AT模式下,还是透传模式下。
2、调试。接好线之后,进入SSCOM调试状态。上电,蓝牙上的LED闪烁,表明未连接。在SSCOM中打开串口,发送
AT+RX
务必保证“不加回车换行”!蓝牙返回名称、主从机状态、波特率等信息。如图2。
图2
再次发送
AT+Name=MxxCtrl
设置蓝牙名称为MxxCtrl;发送
AT+ BAUD=9600,N
设置波特率为9600,无奇偶校验。波特率可以不设置,HC-08出厂的默认设置就是9600的波特率。发送AT+RX,返回设置之后的信息,如图3。
图3
3、提取透传特征码。手机上安装蓝牙调试器。打开,扫描并连接蓝牙BLE,连接正常后,用SSCOM发送几个消息后再断开,再点击蓝牙名称右侧的齿轮样按钮,弹出透传参数,如图4。
图4
图中蓝牙名称仍然是HC-08,是我把重设的名称恢复了,不用管它。最重要的是,透传TX、RX的UUID出现了:
0000FFE1-0000-1000-8000-00805F9B34FB
我们要找个小本本把它记下来,将来会在Phyphox Editor里使用,它是蓝牙的input和output的唯一标识,input是蓝牙发送数据给Phyphox,output则是Phyphox把数据送给蓝牙:
<input>
<Bluetooth……>
<output char="0000FFE1-0000-1000-8000-00805F9B34FB" ……</output>
</bluetooth>
</input>