前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我也是可以开发安卓蓝牙应用的男人了

我也是可以开发安卓蓝牙应用的男人了

作者头像
用户2366192
发布2021-05-31 15:07:13
1.1K0
发布2021-05-31 15:07:13
举报
文章被收录于专栏:TopSemic嵌入式TopSemic嵌入式

上一篇写了尝鲜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。因为原作者用的蓝牙模块和我不一样,不改动是没法正常使用的。

代码语言:javascript
复制
static const QLatin1String serviceUuid("{00010203-0405-0607-0809-0a0b0c0d1910}");

改为:

代码语言:javascript
复制
static const quint16 serviceUuid = (quint16)0xfff0;

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

  1. 增加了发送区,可以发送自己手动输入的内容。原来例程是点击发送,发送一个Hello World。
  2. 增加了接收区,将接收区和日志输出区分开了。原来例程是一起的。
  3. 把原作者的广告信息换成了新的广告信息,这个是重点?。

第三步:实际测试

  1. 手机安装完之后,打开APP,自动搜索周围的蓝牙,显示在蓝牙列表里
  1. 点击需要连接的KTA6368A对应的蓝牙,点击连接按钮

连接成功后,日志如下

不知道为什么,我经常需要点击两次连接按钮才能连接成功,后面再研究研究是什么原因。

  1. 测试手机发送数据给KTA6368A
  1. 测试KTA6368A发送数据给手机

这样就初步实现了我们的目标,以后也可以出去吹牛自己也是可以开发安卓程序的人了。

当然这个QT程序还有很多可以改进的地方,比如UI的美化、和不同尺寸手机的适配、更加丰富的功能等,感兴趣的朋友可以拿源代码自由发挥,需要修改后源代码的可以在文章下方留言。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TopSemic嵌入式 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档