11074|26

1298

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

蓝牙从零到自主开发的学习难吗? [复制链接]

 
  请问蓝牙从零到自主开发的学习难吗?据说是这东东很难学,现在很多都是在底层平台做好的基础上只是加以修改,是这样吗?学过的朋友请讨论……

最新回复

嗯嗯!有道理!相当于我就是向ble发数据,它那边接收到了后,对比自己的协议栈格式,进行解析和处理(修改设备名),对不?  详情 回复 发表于 2016-5-13 15:14
点赞 关注
 

回复
举报

9795

帖子

24

TA的资源

版主

沙发
 
这要看你做什么应用
我自己感觉学起来还是比较简单的
不同的芯片厂家的协议栈也不一样
相比之下CYPRESS 的PSoC 4 BLE 开发起来能容易
很多都已经图形化了
只是价格稍稍贵一些
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复

1万

帖子

139

TA的资源

版主

板凳
 
难不难,因人而异,看悟性、基础和努力程度。
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

1298

帖子

0

TA的资源

纯净的硅(高级)

4
 
还有附带的APP手机软件也要学习,罢了……
 
 
 

回复

136

帖子

0

TA的资源

一粒金砂(中级)

5
 
APP也要学,蓝牙也要学,苦逼啊
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(中级)

6
 
用协议栈开发很方便的。除非你要自己写底层蓝牙。。。大工程
 
 
 

回复

35

帖子

0

TA的资源

一粒金砂(中级)

7
 
自带协议栈的就挺好开发的,一般这样的大多是串口操作。
 
 
 

回复

14

帖子

0

TA的资源

一粒金砂(中级)

8
 
现在有很多很全面的方案,开发起来挺简单的,比如TI的cc2540/41等

点评

我想知道的是:在CC2540/41上开发出来的蓝牙芯片是批量生产的呢还是只是开发板学习而已,  详情 回复 发表于 2016-2-17 09:51
 
 
 

回复

1298

帖子

0

TA的资源

纯净的硅(高级)

9
 
whlwan 发表于 2016-1-26 10:47
现在有很多很全面的方案,开发起来挺简单的,比如TI的cc2540/41等

我想知道的是:在CC2540/41上开发出来的蓝牙芯片是批量生产的呢还是只是开发板学习而已,

点评

是批量生产的。2011年芯片都已经推出来了! 比较完善了,只是听说手机不同的系统兼容有点 瑕疵。  详情 回复 发表于 2016-2-18 15:54
 
 
 

回复

1301

帖子

0

TA的资源

纯净的硅(中级)

10
 
gh131413 发表于 2016-2-17 09:51
我想知道的是:在CC2540/41上开发出来的蓝牙芯片是批量生产的呢还是只是开发板学习而已,

是批量生产的。2011年芯片都已经推出来了!
比较完善了,只是听说手机不同的系统兼容有点
瑕疵。
 
个人签名

 

 

 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

11
 
littleshrimp 发表于 2016-1-8 17:22
这要看你做什么应用
我自己感觉学起来还是比较简单的
不同的芯片厂家的协议栈也不一样
相比之下CYPRESS  ...

请问基于蓝牙4.0的安卓APP开发,需要懂硬件吗?我负责的是做APP,能够扫描,连接,并且接受BLE发来的数据,最多加上处理数据。至于发什么,有人专门做硬件。那我自己是否需要懂硬件或者懂协议啥吗?

点评

开发APP当然可以不知道硬件回事 如果能懂一点硬件会更容易理解你们之的通信协议 一搬纯软件工程师对“位”的理解需要一段时间 因为上位机一搬最小都是字节操作很少会把字节拆成位来研究 我以前一个同事就费了好  详情 回复 发表于 2016-3-11 09:51
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

12
 
vzvxvcvv 发表于 2016-1-25 13:15
用协议栈开发很方便的。除非你要自己写底层蓝牙。。。大工程

请问~~基于蓝牙4.0的安卓APP开发,需要懂硬件吗?我负责的是做APP,能够扫描,连接,并且接受BLE发来的数据,最多加上处理数据。至于发什么,有人专门做硬件。那我自己是否需要懂硬件或者懂协议啥吗?
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

13
 
EE_MCU 发表于 2016-1-25 17:02
自带协议栈的就挺好开发的,一般这样的大多是串口操作。

请问一下,基于蓝牙4.0的安卓APP开发,需要懂硬件吗?我负责的是做APP,能够扫描,连接,并且接受BLE发来的数据,最多加上处理数据。至于发什么,有人专门做硬件。那我自己是否需要懂硬件或者懂协议啥吗?
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

14
 
看你想学到什么程度喽~~~
 
 
 

回复

9795

帖子

24

TA的资源

版主

15
 
色诺芬 发表于 2016-3-10 20:11
请问基于蓝牙4.0的安卓APP开发,需要懂硬件吗?我负责的是做APP,能够扫描,连接,并且接受BLE发来的数据 ...

开发APP当然可以不懂硬件
如果能懂一点硬件会更容易理解你们之的通信协议
一搬纯软件工程师对“位”的理解需要一段时间
因为上位机一搬最小都是字节操作很少会把字节拆成位来研究
我以前一个同事就费了好大劲才把这个弄清楚

比如你要设置一个调光的APP
根据手指在屏幕上的色域内滑动
读取选定的颜色
然后将颜色拆分成R,G,B 3个参数
如果是256色那么R,G,B,各点占一个字节
你把数据放到协议需要放RGB的地方就可以

如果颜色是65536色
RGB每一个颜色占两个字节
你需要把三个int16(short)的颜色数据拆成两个字节(byte)
然后根据协议你还要确定是高位在前还是低位在前
最后把6个字节的RGB数据主放到协议的指定地方

上边是输出

输入的话
比如你需要开发一个温湿度显示的APP
根据协议把温湿度数据从蓝牙那读过来
协议规定温度数据为16位(short,两个字节)
湿度数据为16位(short,两个字节)
假设温度数据是-100~100摄氏度(这样容易理解)

如果数据已经在蓝牙端转换过
Offset Binary Output Mode 的格式一搬会用0代表-100度
32767代表0度
65535代表100度

如果是Twos Complement Mode的格式一搬会用0代表0度
65535~32768代表-1~-100度
0~32767代表0~100度

除一下你就知道每一个LSB代表的温度是多少
这就是分辨率

如果数据没有在蓝牙端转换过
给你的数据可能还需要你来转换
比如SHT21温湿度传感器输出的数据是16位(short)
你得到数据后要根据器件手册里的公式做计算

最后才得到温度数据













点评

版主你太厉害了!!!膜拜!!!!我现在安卓刚开始学就让我做一个APP(扫描、连接、读取发送过来的数据),现在已经能扫描并且发现BLE了,但是不会连接,接下来的读取数据更别说了,请问一下,我应该怎么学习呢?是  详情 回复 发表于 2016-3-11 14:21
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

16
 
littleshrimp 发表于 2016-3-11 09:51
开发APP当然可以不懂硬件
如果能懂一点硬件会更容易理解你们之的通信协议
一搬纯软件工程师对“位”的 ...

版主你太厉害了!!!膜拜!!!!我现在安卓刚开始学就让我做一个APP(扫描、连接、读取发送过来的数据),现在已经能扫描并且发现BLE了,但是不会连接,接下来的读取数据更别说了,请问一下,我应该怎么学习呢?是找一些类似功能的APP源码看呢?还是看Android的官方文档?或者是否需要先学习socket、server、broadcast receive这些安卓的东西?

点评

我觉看别人的源码再参照开发文档上手会快一些 如果你以后的方向都是做APP 还是要把基础学好 现学现用也挺浪费时间的  详情 回复 发表于 2016-3-11 15:42
 
 
 

回复

9795

帖子

24

TA的资源

版主

17
 
色诺芬 发表于 2016-3-11 14:21
版主你太厉害了!!!膜拜!!!!我现在安卓刚开始学就让我做一个APP(扫描、连接、读取发送过来的数据 ...

我觉看别人的源码再参照开发文档上手会快一些

如果你以后的方向都是做APP
还是要把基础学好
现学现用也挺浪费时间的

点评

再次感谢版主,再请教一下,如果我只是连接,不进行数据传输和其他操作,是不是用一个.connect(device address)函数就行了,不用涉及UUID、server啥的?  详情 回复 发表于 2016-3-12 08:35
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

18
 
littleshrimp 发表于 2016-3-11 15:42
我觉看别人的源码再参照开发文档上手会快一些

如果你以后的方向都是做APP
还是要把基础学好
现学现 ...

再次感谢版主,再请教一下,如果我只是连接,不进行数据传输和其他操作,是不是用一个.connect(device address)函数就行了,不用涉及UUID、server啥的?

点评

一搬你开启广播在扫描到蓝设备后会触发onLeScan函数 @Override public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) 然后判断device是不是你要连接的设备 如果是可以新起一个线程执行  详情 回复 发表于 2016-3-14 12:25
 
 
 

回复

9795

帖子

24

TA的资源

版主

19
 
色诺芬 发表于 2016-3-12 08:35
再次感谢版主,再请教一下,如果我只是连接,不进行数据传输和其他操作,是不是用一个.connect(device a ...

一搬你开启广播在扫描到蓝设备后会触发onLeScan函数
@Override
public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord)

然后判断device是不是你要连接的设备
如果是可以新起一个线程执行gatt = device.connectGatt(mContxt, true, gattCallback);
第二个参数根据实际情况确定
第三个参数gattCallback是回调函数
通过回调判断设备的连接状态

你也可以把扫描到的设备都存起来
然后由用户手动选择连接哪个设备
也是执行gatt = device.connectGatt(mContxt, true, gattCallback);

点评

版主我又来请教你了,我现在APP和BLE设备连接后,会时不时的断开连接,当然,我已经能够让其断开后自动连接了。但是我想问问,断开连接这个情况是我这边软件的问题呢,还是对方硬件的问题呢  详情 回复 发表于 2016-3-22 09:41
谢谢版主,经过周末的摸索,现在已经可以正常连接并接收string字符串数据了,以后有不懂的再来请教你!再次感谢版主不吝赐教  详情 回复 发表于 2016-3-14 14:11
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

20
 
littleshrimp 发表于 2016-3-14 12:25
一搬你开启广播在扫描到蓝设备后会触发onLeScan函数
@Override
public void onLeScan(BluetoothDevice  ...

谢谢版主,经过周末的摸索,现在已经可以正常连接并接收string字符串数据了,以后有不懂的再来请教你!再次感谢版主不吝赐教
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表