上一篇写了尝鲜1.6元的蓝牙芯片KT6368A,还没完,今天的主题是实现手机端的测试软件。手机端大家通常会用LightBlue或者Nordic的nRF Connect软件做测试,但是作为干嵌入式的攻城狮,我相信肯定有不少人会有兴趣想自己弄一个可以修改的软件,难不成今天要介绍安卓编程了吗?不,因为我不会!我觉得也没必要专门为了这个去学安卓,毕竟我们也不是专门从事安卓开发的。有一种方法可以搞定,那就是使用QT,大家知道QT可以跨平台运行,并且用的也是嵌入式工程师熟悉的C++语言,所以可以用QT整一个在安卓系统里运行的蓝牙软件。

 

下面介绍实现方法:

第一步:QT安卓开发环境搭建

我用的QT 5.13,具体环境搭建大家可以参考:

https://blog.csdn.net/tanglei1224/article/details/104820485

 

搭建完安卓环境,如果想编译安卓平台的程序,编译的时候只选择如下Kit就可以,其它都不用变

 

 

如果手机通过USB连接电脑的话,点击运行,手机端就会提示你安装应用程序。当然也可以把编译后生成的apk放到手机里安装,编译生成的apk在如下目录:

 

 

第二步:找QT 安卓BLE程序

我喜欢用前人造好的轮子,在网上找到了这篇文章:

 

https://blog.csdn.net/rsd102/article/details/112453131 ,恰巧还认识该作者小哈哥,我把他的公众号原文也放到这里:Qt编程实例:基于Android的BLE通信软件,文中有代码的解释,感谢小哈哥的分享,让我很快实现了自己的想法。

 

为了证明我也干了一点事情,我实际上做了几处小小的改动:

 

1.  修改UUID。因为原作者用的蓝牙模块和我不一样,不改动是没法正常使用的。

 

static const QLatin1String serviceUuid("{00010203-0405-0607-0809-0a0b0c0d1910}");

 

改为:

 

static const quint16 serviceUuid = (quint16)0xfff0;

 

KTA6368A默认是16位UUID 0xFFF0,这个在芯片的使用手册里有说明

 

 

增加了发送区,可以发送自己手动输入的内容。原来例程是点击发送,发送一个Hello World。

 

增加了接收区,将接收区和日志输出区分开了。原来例程是一起的。

 

把原作者的广告信息换成了新的广告信息,这个是重点