- 博客(69)
- 资源 (2)
- 收藏
- 关注
转载 BLE4.0核心规格(二)之广播包解析
一.广播报文格式 广播链路层报文格式如下: Preamble: 前言, 广播通道固定为10101010b,数据通道是10101010b or 01010101b Access Address :接入地址,广播通道固定为0x8E89BED6, 数据通道是随机值,不同的连接有不同的值。在连接建立之后的两个设备间使用。 PDU: CRC:CRC校...
2019-08-10 20:16:53
1912
1
原创 深入浅出低功耗蓝牙(BLE)协议栈
BLE协议栈为什么要分层?怎么理解BLE“连接”?如果BLE协议只有ATT层没有GATT层会发生什么?协议栈框架一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。在深入BLE协议栈各个组成部分之前,我们先看一下BLE协议栈整体架构。如上图所述,要实现...
2019-08-08 17:34:03
1236
原创 三种蓝牙架构实现方案(蓝牙协议栈方案)
蓝牙架构实现方案有哪几种?我们一般把整个蓝牙实现方案叫做蓝牙协议栈,因此这个问题也可以这么阐述:蓝牙协议栈有哪些具体的架构方案?在蓝牙协议栈中,host是什么?controller是什么?HCI又是什么?大家都知道,不同的应用场景有不同的需求,因此不同的应用场景对蓝牙实现方案的要求也不一样,从而催生不同的蓝牙架构实现方案,或者说蓝牙协议栈方案。架构1:host+contr...
2019-08-08 14:16:12
5716
原创 BLE和经典蓝牙的区别
蓝牙4.0标准包括传统蓝牙部分和低功耗蓝牙模块部分。低功耗蓝牙是建立在传统蓝牙基础之上继而发展的,并有别于传统蓝牙模块。按照应用和支持协议划分主要分为两种:经典蓝牙模块(BT):泛指支持蓝牙协议在4.0以下的模块,一般用于数据量比较大的传输。经典蓝牙模块可再细分为:传统蓝牙模块和高速蓝牙模块。传统蓝牙模块在2004年推出,主要代表是支持蓝牙2.1协议的模块,在智能手机爆发的时期...
2019-08-08 13:48:43
13126
转载 BLE4.0核心规格(六)BLE 概述
文章目录 基带 band 通道 chanel 事件event 广播事件 连接事件 逻辑链路 SMP和ATT 基带 band像BR/EDR射频一样,LE射频采用非许可的2.4G ISM 基带。LE系统采用跳频来对抗干扰和衰减,并提供很多跳频载体。字符传输数据到达1Ms/s。通道 chanelLE采用了两种多用配置方案:频分多址(FDMA)和时分多址...
2019-08-08 11:43:41
536
1
转载 Nordic系列芯片讲解 (BLE事件回调机制解析)
BLE事件回调机制解析nRF5 SDK从版本14开始,对事件回调机制做了更新,引入了观察者模式,以解耦不同BLE Layer对BLE事件的回调函数。实现这套机制用到了Flash的段(Section),将RAM中的函数调用与Flash中的段操作结合到一起,这个想法很新颖。本文尝试理解和追踪整个回调过程,并写一段代码验证我们的思路。一、观察者模式简介面向对象编程世界里有许多著...
2019-08-08 11:09:51
3826
2
原创 详解BLE连接建立过程
详解BLE连接建立过程同一款手机,为什么跟某些设备可以连接成功,而跟另外一些设备又连接不成功?同一个设备,为什么跟某些手机可以建立连接,而跟另外一些手机又无法建立连接?同一个手机,同一个设备,为什么他们两者有时候连起来很快,有时候连起来又很慢?Master是什么?slave又是什么?什么又是Connection event和slave latency?希望这篇文章能帮助你回答上述问题。BL...
2019-08-06 16:28:05
1943
1
转载 蓝牙4.0BLE抓包(三) – 扫描请求和扫描响应
转自:http://www.cnblogs.com/aikm/p/5144209.html版权声明:本文为博主原创文章,转载请注明作者和出处。作者:强光手电[艾克姆科技-无线事业部]1.扫描请求和扫描响应 广播包含扫描请求SCAN_REQ和扫描响应SCAN_RSP。扫描请求:由链路层处于扫描态的设备发送,链路层处于广播态的设备接收。 扫描响应:由链路层处于广...
2019-08-06 15:42:20
2559
转载 蓝牙4.0BLE抓包(二) – 广播包解析
转自:http://www.cnblogs.com/aikm/p/5022502.html版权声明:本文为博主原创文章,转载请注明作者和出处。 作者:强光手电[艾克姆科技-无线事业部] 在使用EN-Dongle捕获和解析广播包之前,我们先了解一下BLE报文的结构,之后,再对捕获的广播包进行分析。在学习BLE的时候,下面两个文档是极其重要的,这是SIG发布的蓝牙的核心协议和核...
2019-08-06 15:40:53
1617
原创 Nordic nRF52832 搭建开发环境及注意事项
Nordic nRF52832搭建开发环境nRF52832 是Nordic出的最新款超低功耗soc,是上代芯片nRF51822的升级版。芯片集成2.4GHz发射器和一颗32位 ARM Cortex M4F CPU,以及512KB rom+64KB ram。厂家提供协议栈支持BLE,ANT,和专用2.4GHz协议。笔者做的是BLE开发。本博客是我开发过程中一系列记录和总结,放在这里进行交流。...
2019-08-02 11:43:41
4230
1
原创 nrf52832 BLE地址
一个ble设备,地址可以分成2大类 Public Device Address(公共设备地址) 公共设备地址 Public Device Address是48bits的数字,就和电脑mac地址一样,是全球唯一的,一般传统蓝牙用这种地址。 Random Device Address(随机设备地址) 不是固定分配,而是设备启动后随机分配,Random Device Addre...
2019-08-02 11:34:47
1157
原创 nrf52832设置发射功率
/* * @param[in] tx_power Radio transmit power in dBm (accepted values are -40, -30, -20, -16, -12, -8, -4, 0, and 4 dBm). * * @note The -30dBm setting is only available on nRF51 series ICs. * ...
2019-08-02 10:43:15
3333
原创 宏定义中 # 和 ## 的作用
单井号:将后面的 宏参数 进行字符串操作,即 将后面的参数用双引号引起来双井号:就是用于连接 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...
2019-08-01 18:07:31
541
原创 do{...}while(0)的妙用
do{...}while(0)的妙用1.帮助定义复杂的宏以避免错误举例来说,假设你需要定义这样一个宏:#define DOSOMETHING() foo1(); foo2();这个宏的本意是,当调用DOSOMETHING()时,函数foo1()和foo2()都会被调用。但是如果你在调用的时候这么写:if(a>0) DOSOMETHING();因为宏在预处理...
2019-08-01 17:03:52
172
原创 为什么要用宏定义函数
在C程序中,可以用宏代码提高执行效率。宏代码本身不是函数,但使用起来象函数。预处理器用复制宏代码的方式代替函数调用,省去了参数压栈、生成汇编语言的CALL调用、返回参数、执行return等过程,从而提高了速度。使用宏代码最大的缺点是容易出错,预处理器在复制宏代码时常常产生意想不到的边际效应。...
2019-08-01 17:00:36
3653
原创 什么是TCP/IP协议?原理是什么?
什么是TCP/IP协议?原理是什么?TCP/IP不是一个协议,而是一个协议族的统称。里面包括IP协议、IMCP协议、TCP协议。这里有几个需要注意的知识点:互联网地址:也就是IP地址,一般为网络号+子网号+主机号域名系统:通俗的来说,就是一个数据库,可以将主机名转换成IP地址RFC:TCP/IP协议的标准文档端口号:一个逻辑号码,IP包所带有的标记Socket:应...
2019-07-31 15:02:30
2090
原创 “Beyond Compare 许可证密钥被撤销” 的解决办法
解决方法:删除相应目录根据系统进入相应文件夹,删除所有文件。WinXP C:\Documents and Settings\[Your User Name]\Application Data\Scooter Software\Beyond Compare 3\Win7 C:\Users\[Your User Name]\AppData\Roaming\Scooter So...
2019-07-31 14:48:20
54769
19
原创 IOS开发环境更换后重新制作Provisioning Profile证书详解
IOS开发环境更换后重新制作Provisioning Profile证书详解新换了台Macbook,又折腾了一遍Provisioning Profile证书,苹果的证书繁锁复杂,每次制作都相当麻烦,而且Provisioning Profile证书是与设备绑定的,所以更换开发环境后需要重新制作。Provisioning Profile证书这个东西是很有苹果特色的一个东西,一般称之为PP证书,...
2019-07-31 14:47:03
865
原创 unlocker解锁不了VMware Workstation11解决方法
不少人安装了VMware workstation11后发现之前的unlocker已经无法进行解锁了。好在pcbeta的网友又开发了对应的unlocker2.**版本来解锁mac虚拟机选项但实际使用中发现vmxsmc.exe这个程序执行的时候会出现停止工作的问题,具体原因不得而知,但有应对方法,就是配置python去执行vmxsmc.py脚本即可。工具/原料 python 2...
2019-07-31 11:25:56
4131
原创 如何在虚拟机上安装苹果系统(Mac OS)
怎么样把Mac OS安装在虚拟机(VMware Workstation)上呢?那么,下面的步骤可供参考。谢谢接纳。原文链接:https://www.mairoot.com/?p=1082工具/原料 VMware Workstation 12 Mac OS python-2.7.9.amd64 unlocker206 方法/步骤 1 1.下载...
2019-07-31 11:21:59
2642
转载 pow(x,y)函数的实现算法(递归函数)
pow(x,y)函数的实现算法(递归函数)函数pow(x,y)实现运算x^y,即x的y次方,这里x和y都为整数。算法的基本思想是,减少乘法次数,重复利用结算结果,例如:x^4,如果逐个相乘的话,需要四次乘法。如果我们这样分解(x^2)*(x^2)就只需要2两次乘法,因为x^2的结果我们可以重复利用。所以我们最好做对称的分解指数y,然后求x^(y/2)的平方。具体算法如下:1 如果y...
2019-07-16 18:31:40
1973
转载 Android6.0------权限申请管理
Android6.0------权限申请管理(单个权限和多个权限申请)Android开发时,到6.0系统上之后,有的权限就得申请才能用了。Android将权限分为正常权限 和 危险权限Android系统权限分为几个保护级别。需要了解的两个最重要保护级别是 正常权限 和 危险权限:(1)正常权限:涵盖应用需要访问其沙盒外部数据或资源,但对用户隐私或其他应用操作风险很小的区域。...
2018-12-05 00:16:35
143
转载 nRF52832中对flash都读写操作
使用SDK 12.2.0.nRF52832应用程序的空间从0x0001F000开始。Flash的结构图:协议栈提供了对flash操作的API,在\components\libraries中的fds和fstorage.fds(Flash Data Storage)是一种极简的、面向记录的文件系统,用于芯片的闪存。文件存储为可变长度记录的集合。FDS支持同步
2018-01-22 17:40:01
5947
转载 NMEA 183 格式 GPRMC 数据行解析
23456789101112131415161718192021222324252627282930313233343536
2017-12-22 15:02:42
3250
转载 Protocol buffer序列化及其在微信蓝牙协议中的应用
Protocol buffer是Google出品的一种轻便高效的结构化数据存储格式,可对结构化数据进行序列化,并具有语言无关、平台无关等特点,在通信协议和数据存储等领域已经得到广泛的应用。目前其已经提供 C/C++、Java、Python 等语言的 API。一、Protocol buffer和XML在数据通信传输时,一般需要将结构化的数据序列化成流进行传送,接收方再反序列化为原始格
2017-12-21 16:33:54
735
转载 以蓝牙开发的视觉解读微信Airsync协议
微信硬件平台使用蓝牙作为近场控制的连接件,并拟定了《微信蓝牙外设协议》。这份协议更像一个标准,用于规范微信和蓝牙外设之间的数据交互场景和接口。但从开发者来看,要完全读懂这份协议,恐怕需要熟读很多遍,并且要结合调试才能真正实现微信Airsync通信。笔者对IOT和微信硬件平台的整个框架和技术都比较熟悉了,并且已经在TI的CC254X和Dialog的DA14580上实现了微信Airsync协议通信。现
2017-12-21 16:32:08
1320
转载 APP Inventor中如何利用GPS经纬度计算GPS距离、速度、方向
最近有空时研究了一下MIT APP InVentor,这是一个原来google验室的项目,目的是为了给Andriod APP的开发者提供一种简便快捷的开发模式,但后来该项目被停止,2012年转给了MIT(麻省理工学院),目前由麻省理工学院继续开发及发布,当前最新的版本是2.0 bata版。 MIT APP Inventor应该是一个定位于 Android APP原生态开发模式
2017-12-21 16:24:45
7324
转载 GPS NMEA-0183标准详解(常用的精度以及经纬度坐标)
GPS数据遵循NMEA-0183协议,该数据标准是由NMEA(National Marine Electronics Association,美国国家海事电子协会)于1983年制定的。统一标准格式NMEA-0183输出采用ASCII 码,其串行通信的参数为:波特率=4800bps,数据位=8bit,开始位=1bit,停止位=1bit,无奇偶校验。数据传输以“语句”的方式进行,每个语句均
2017-12-21 16:16:41
13815
2
转载 nrf51822 --- 动态修改连接间隔
1.目的 在蓝牙连接上的时候动态修改连接间隔,已达到功耗平衡2.分析 在实际应用的时候,有时候需要发送数据快一点,这个时候我们可以把连接间隔改小一点,这样发送数据快,但是功耗大,当把数据发完的时候,可把连接间隔改小一点,这样可以降低功耗,达到一个均衡.比如穿戴设备连接上的时候,可能需要快速把本地数据发给手机,这个时候就可以把连接间隔设置小点。传送完毕后间隔设置大点
2017-11-25 15:16:28
2396
转载 蓝牙nrf51822空中升级
原理简介:对于单片机做的产品,要实现在线升级,单片机内部一般是两段代码,一个是bootloader程序,一个是用户app程序,bootloader程序主要就是实现app升级的程序,它是单片机上电后首次运行的程序,app程序就是实现产品功能的程序。对于nRF51822来说,稍微有点特殊,但是本质原理也是一样的,nRF51822芯片内部有段SoftDevice的程序,它是芯片上电后首次运行的程
2017-11-06 23:37:08
1415
1
转载 NRF51822之发射功率
设置蓝牙的TX Power使用的函数sd_ble_gap_tx_power_set(int8_t tx_power); 参考例子为 S110/ble_app_proximity#define TX_POWER_LEVEL (4)
2017-11-06 23:13:07
1746
转载 cipher命令(转)
cipher.exe命令格式: CIPHER [/E | /D] [/S:directory] [/A] [/I] [/F] [/H] [pathname [...]] CIPHER /KCIPHER /R:filename参数介绍: /A 使用于目录和文件 /D 解密指定的目录
2017-10-10 09:31:38
2864
原创 Protobuf协议格式详解
Protobuf协议格式详解protobuf 是google开源的一个序列化框架,类似xml,json,最大的特点是基于二进制,比传统的XML表示同样一段内容要短小得多。还可以定义一些可选字段,用于服务端与客户端通信。前面几篇文章说了protobuf的用法,看到网上也没有分析protobuf协议的文章,就利用一些时间写了protobuf 的协议分析,希望大家喜欢。protobuf协议核心...
2017-06-20 17:10:57
870
转载 C实现Unix时间戳和本地时间转化
目录(?)[+]我们平常说时间都说的几点几分几秒,星期几,但是在计算机里面并不是直接使用我们所说的时间,而是使用Unix时间戳,这样不管是哪个平台,哪个系统,都可以根据自己对时间的定义进行转换,像Java,PHP等都提供了接口来进行转化,C库里面也有这样的函数,那具体是怎么实现的呢?要了解这个问题首先我们就必须要清楚什么是Unix时间戳,什么是我们平常使用的时间。1.
2017-03-22 00:51:38
1904
转载 解决C++ 无法从void 转换为LRESULT的方法详解
这个应该是一个MFC程序,ON_MESSAGE是添加消息响应函数,这句话就是添加热键WM_HOTKEY的响应函数。当你注册了热键之后,当用户按下热键,会执行OnHotKey函数来处理这个消息。错误就应该是OnHotKey这个函数的声明错误了,返回值应该是LRESULT. VS2008对消息的检查更为严格,以前在VC6下完全正常运行的消息映射在VS2008下编译不通过ON_MESSAGE
2017-03-19 23:51:38
984
转载 SPI读写总结
SPI协议是主从模式:从机不主动发起访问,总是被动执行操作。CSN:片选信号。SCK:时钟信号。MOSI:master output slave input,即主机输出从机输入。可以理解主机写从设备。MISO:master input slave output,即主机输入从机输出。可以理解主机读从设备。SPI全称:Serial Peripheral interface,
2017-02-08 09:47:17
3338
原创 GB2312、GBK与UTF-8的区别
这是一个异常经典的问题,有无数的新手站长每天都在百度这个问题,而我,作为一个“伪老手”站长,在明白这个这个问题的基础上,有必要详细的解答一下。首先,我们要明白,GB2312、GBK和UTF-8都是一种字符编码,除此之外,还有好多字符编码。只是对于我们中国人的网站来说,用这三种编码 比较多。简单的说一下,为什么要用编码,在计算机内,储存文本信息用ASC II码,每一个字符对应着唯一的ASCI
2017-02-07 15:43:13
361
转载 可穿戴手势识别控制器
可穿戴手势识别控制器2016年电子技术应用第7期 作者:徐军,刘春花,孟月霞,马静 摘 要: 随着可穿戴电子设备的发展,基于手势识别的人机交互技术已经成为研究热点。为减小可穿戴设备的体积和优化手势识别算法,提出了一种具有手势识别功能手指可穿戴控制器的设计方案。控制器由集成陀螺仪和加速度计的MEMS惯性传感器、WiFi无线通信模块和嵌入式微处理器组成。通过
2017-02-06 16:00:00
7033
转载 sourceinsight tab 空格 对齐 等宽字体
参考:http://bbs.chinaunix.net/thread-587409-1-1.html 1. SMART TAB的用法. 解决自动缩进. 新开一个PROJECT后,点Options->Document Options,弹出对话框后先在左上角选好要用的Document Type,主要就是设C Source File和C++ Sour
2016-11-23 11:47:05
2580
转载 把项目从VS2005升级到VS2013
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://rangercyh.blog.51cto.com/1444712/1394348小斯同学花了几周的时间,终于把我们的服务端和客户端从vs2005升级到vs2013了。真是不得不给个赞。升级的过程中遇到了各种问题,小斯同学跋山涉水、越过艰难险阻终于成功让我们用上了高大
2016-11-23 11:43:47
2936
Windows子系统WSL LxRunOffline-v3.5.0-11-gfdab71a-msvc(免费)
2023-01-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人