自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 NRF51822蓝牙服务(9)——动态修改设备的名称

前言很多时候我们希望能够通过手机动态修改设备的MAC地址、配对密码或者蓝牙设备信息等,其实原理上都是可以实现的。大概思路其实就是把我们需要修改的内容发送到FLASH中保存,然后再用FLASH中的内容替代原先的内容。最后重启服务就行了。这里我们通过修改设备的名称来验证一下。实验分析官方的协议栈实现中默认都会提供Generic Access(GAP)服务(UUID:0x1800)和Gene...

2019-12-19 21:16:07 2211

原创 NRF51822蓝牙服务(8)——动态密码配对

前言上篇我们学习了使用静态密码的方式在连接时进行密钥的验证,那么我要使用动态密码,进一步提高安全性呢?这里我们就在上篇代码的基础上尝试使用动态密码的方式完成蓝牙配对。实验分析由于,静态密码的时候已经把基本步骤详细讲述,这里就不再过多讲述。由于开发板没有显示屏,所以这里采用串口打印的方式获取动态密码。static void gap_params_init(void){ ...

2019-12-18 19:34:19 1184 1

原创 NRF51822蓝牙服务(7)——静态密码配对

前言有时候我们希望能够在连接的时候进行密钥的验证,以保障连接的安全。为了保证低功耗蓝牙的绝大多数安全特征,必须完成两个事情。首先是设备必须互相配对;其次,设备必须分配用于加密、保障隐私并对消息进行验证的密钥。这里我们尝试使用静态密码的方式完成蓝牙配对。实验分析这里,我们仍然使用前面的串口实验例程。配对连接过程:手机连接上之后立刻调用安全请求API(sd_ble_gap_aut...

2019-12-16 21:03:08 2011 4

转载 手把手,嘴对嘴,讲解UCOSII嵌入式操作系统的任务调度策略(五)

继续......整个UCOSII嵌入式操作系统的任务调度策略便是如此,现在进行一个总结:某个任务在执行中,每隔一定周期发生滴答时钟中断,在中断中遍历整个任务链表,更新每个任务的延时时间,修改就绪状态。 任务执行完毕后,进入延时函数,在延时函数中会把当前任务挂起(清空当前任务的就绪状态,使其进入未就绪状态),然后根据查表发找到在就绪任务中,优先级最高的那一个任务。 找到新任务以后,人工强...

2019-12-16 14:00:46 448

转载 手把手,嘴对嘴,讲解UCOSII嵌入式操作系统的任务调度策略(四)

继续......再回到那个重要得函数:void OS_Sched (void){#if OS_CRITICAL_METHOD == 3u /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr = 0u;#endif OS_ENT...

2019-12-16 13:47:17 556

转载 手把手,嘴对嘴,讲解UCOSII嵌入式操作系统的任务调度策略(三)

继续......if (ticks > 0u) { /* 0 means no delay! */ OS_ENTER_CRITICAL(); y = OSTCBCur->OSTCBY; /* ...

2019-12-12 20:36:13 328 2

转载 手把手,嘴对嘴,讲解UCOSII嵌入式操作系统的任务调度策略(二)

继续......if (ticks > 0u) { /* 延时参数是否为0 */ OS_ENTER_CRITICAL();            /* 禁止中断 */ y = OSTCBCur->OSTCBY; OSRdyTbl[y] &= (OS...

2019-12-12 20:20:58 368

转载 手把手,嘴对嘴,讲解UCOSII嵌入式操作系统的任务调度策略(一)

前言所谓操作系统,便是隔绝硬件层与应用层的平台,让工程师可以最大限度的忽视硬件,直接进行逻辑开发,它最大的特点,便是可以让多任务并发执行,但并非是同时执行,形象点来说,假如我有4个任务(LED点灯,喇叭鸣叫,串口通信,数据计算),让每个任务都执行几十个毫秒,虽然实际上在任何一个时间点,都有且只有一个任务的一条代码在执行,但是从宏观上看来,这4个任务几乎是同时执行的,这4个任务的调度,就是切换是...

2019-12-12 15:30:16 554

原创 NRF51822蓝牙服务(6)——显示设备信息

前言有时候开发项目,我们希望能通过蓝牙直接读取到设备的信息,例如制造商、固件版本、硬件版本和软件版本等信息。所以,今天我们就直接使用官方提供的服务来实现这个需求。实验分析首先,我们需要把官方驱动例程添加到我们的工程(这里使用前面用到的串口例程)目录里面:路径是:工程目录\components\ble\ble_services\ble_dis接着,我们去看看官方提供给我们的接...

2019-12-10 21:52:27 1313

转载 蓝牙:GATT,属性,特性,服务

通用属性配置文件(Generic Attribute Profile)1.GATT简介通用属性配置文件Generic Attribute Profile简称GATT。GATT定义了属性类型并规定了如何使用,包括了一个数据传输和存储的框架和一些基本操作。中间包含了一些概念如特性characteristics,服务services等,在后面介绍。同时还定义了发现服务,特性和服务间的连接的处理...

2019-12-09 22:27:04 2515 1

原创 NRF51822蓝牙服务(5)——FLASH存储数据

前言有时候我们希望能够把蓝牙接收的数据保存下来,为以后调用和处理提供方便。所以这里我们可以尝试把数据存放在内部FLASH里面,因为FLASH掉电不易失,是一个很好的存储方式。实验分析NRF51822官方BLE协议栈实际上是提供了FLASH存储库函数,采用这些库函数,可以很方便的在工程里面进行FLASH的相关操作,这样就避免了我们重复造轮子了。NRF51822官方在SDK例程里面提供...

2019-12-07 23:15:19 1822

原创 NRF51822蓝牙服务(4)——串口透传

前言这一次我们尝试创建一个串口服务来实现手机与开发板的数据透传,其实无非就跟学习创建LED读写服务的时候一样创建一个私有服务而已。废话少说,我们直接开始实验。实验分析首先,我们要知道NRF51822的串口通信引脚:RX:P0.11,TX:P0.9,RTS:P0.10,CTS:P0.8。接着,新建串口驱动文件:ble_nus.c和ble_nus.h ...

2019-12-05 21:22:46 3300 3

原创 NRF51822蓝牙服务(3)——电池电量采集

前言由于蓝牙BLE就是为低功耗手持设备存在的,那电池电量的监测服务就不可或缺了。由于电量服务是蓝牙兴趣小组指定的服务,不需要用户去创建私有服务,所以这个实验我们直接使用官方提供的驱动文件即可。实验分析由于我的开发板没有提供AD口检测电量,所以实验直接使用一个全局变量代表电量值,每隔一秒更新一次。首先,我们需要把官方驱动例程添加到我们的工程目录里面:路径是:工程目录\com...

2019-12-04 13:20:12 2476 1

原创 NRF51822蓝牙服务(2)——按键通知

前言上篇已经通过一个LED读写实验,学习了如何添加一个私有服务。现在,我们就在LED读写实验的基础上再增加一个按键通知的功能。实验分析首先,我们先看看开发板的硬件连接:从这里可以看出,button0和button1分别对应P0.16~P0.17引脚,当按下按键的时候引脚电平会被拉低。熟悉单片机开发的同学应该了解,这种情况我们的IO需要配置成上拉以提高引脚的抗干扰能力。这里我...

2019-12-03 23:41:40 874 1

原创 NRF51822蓝牙服务(1)——LED读写

前言上篇已经简单分析了一下BLE协议栈的基本知识,今天就废话少说,直接先从最基础的点灯开始BLE蓝牙服务的开发。实例分析本文直接采用官方SDK的led例程修改,所以首先我们先来看看开发板的硬件连接:从这里可以看出P0.18~P0.20分别对应LED0~LED2,当芯片输出高电平时LED将被点亮;这时候我们来看下官方的LED驱动代码:#define LEDS_OFF(l...

2019-12-03 14:09:14 1410 1

原创 浅析BLE协议栈

前言学习使用蓝牙芯片进行项目开发,就得先对协议栈的框架结构进行分析,需要对BLE协议栈的框架结构有清晰的理解,因此我尝试简单分析一下BLE协议栈。协议栈框架首先,协议栈的意思就是对协议的代码实现,协议栈的框架分层大概可以用下图表示:控制层可以分为:主控制器(HCI)、链路层(LL)、物理层(PHY);HCI:控制一般的蓝牙设备行为,负责所有与数据无关的蓝牙系统操作,例如:...

2019-12-02 11:23:19 1348 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除