分享

android手机の蓝牙串口调试助手

 软件团队头目 2012-03-04
    串口,RS232,USART这几个名词经常会见到,其实对这几个名词的真正含义也不是很了解,但我知道他们的通信协议都是相同的,在通讯过程中也经常用到,但这种协议的传输距离好像比较短。以前玩单片机的时候,经常会遇见单片机与电脑通讯的情况,电脑端就是RS232接口,而单片机端就是USART接口,但我的笔记本没有RS232接口,后来买了个USB转串口的模块,转换后是TTL电平,直接可以单片机的接口相连。
    在电脑端经常使用一个叫串口调试助手的软件,虽然这个软件并不复杂,但的确经典,为串口调试带来很大方便。最近在玩android系统,其实android手机也经常会与单片机或电脑通讯,比较简单的方法就是通过android手机蓝牙的SPP服务(也就是串口服务)与外界通讯,但是非常遗憾的一点是google公司并没有在android系统中为蓝牙加入SPP服务,而需要我们编代码来实现,当然,自己编代码的一个好处就是增加了蓝牙通讯的灵活性。
    这里使用的开发软件是eclipse,这个软件的确很好用,再加上google提供的ADT插件,对于android软件的开发,真有如喝咖啡的感觉-舒服、惬意。大学的专业是电气工程,强电学了一些,弱电也学了一些,当然个人更喜欢弱电。大学里学过C语言和汇编语言,但没用接触过这种面相对象的java语言。但自认为编程还是很擅长的,只要花以时日一定会取得质的飞跃。于是在电驴等各大著名网站搜罗了很多资料。下面推荐几个比较好的资料:
1、魔乐科技MLDN-李兴华老师零基础学Java系列教程,网址http://www./topics/2832494/
2、android开发视频教学,网址http://www./topics/2837883/
第一个是java的基础教学视频,感觉讲的挺好,特别适合我这种初学者,全部视频我看了两遍,感觉已经感悟到面向对象的思想(可能不是很深刻)。最近注意到李兴华老师又出了关于android教学的视屏,叫《魔乐MLDN 李兴华教你Android开发实战 》,有时间一定要看一看。
第二个是一个叫mars的大学老师出的android开发教学视频,讲的比较清楚,感兴趣的朋友可以看一看。
    通过学习以上两个资料,android开发基本进入大门,在开发过程中经常会参考android API,并在包罗万象的网络中搜索答案。这里介绍个捷径在google API网页上,在framework topics中专门有一个关于bluetooth的topic,这里介绍了蓝牙模块的整个工作过程,包括连接,数据传输等等,并有相应的示例代码,如果此部分能够全部理解,关于蓝牙的开发基本没有问题.根据蓝牙的工作过程,并组织一行行的代码,一个简单的android蓝牙串口调试也就完成,但从代码的组织形式和可重用性上看,感觉还是有点面向过程的感觉。后来才发现google 为了便于开发者,特意准备了许多典型的开发范例,实际就在我们下载的SDK文件包中,这里用到了叫BluetoothChat的sample code,这个软件能够实现两部android手机通过蓝牙通信,其中使用的服务就是SPP服务。这个软件的代码写的非常好,非常严谨,而且灵活通用,以后开发蓝牙时就可以直接利用里面的类文件BluetoothChatService.java现在的蓝牙串口调试助手软件就是直接利用这个类文件而开发的。
文字看多了有点疲劳,先来点图片。

android手机の蓝牙串口调试助手
在电脑上连接USB串口模块

android手机の蓝牙串口调试助手
电脑上的串口调试助手

android手机の蓝牙串口调试助手
手机上蓝牙串口调试助手

    在开发过程中也与到一些问题,例如蓝牙一次性接收的数据长度不固定,举个例子,传递一个字符串“good”,手机蓝牙有时一次就把4个字符都接收到,有时需要3次或4次才能把4个字符全部接收到,这样就无法判断你传递的时“go”,还是“good”。后来定义了一个通讯协议,在要传输的字符串后面加一个结束符,当热这个结束符可以任意选择,我就选择了一个感叹号作为结束符。之后只要在手机上做简单判断就可以正确接收数据了。
    感兴趣的朋友可以到下面的连接下载软件http:///file/dn3ijmy1#Amsora.apk



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多