ble学习笔记十-------------ble协义栈之硬件抽象层
来源:互联网 发布:画图软件在线使用 编辑:程序博客网 时间:2024/05/22 23:59
------------------------硬件抽象层
硬件抽象层文件目录
HAL-Common 协议栈 mac和驱动中使用到的相关配置文件
Hal_drivers.c包含所有驱动初始化和事件处理机制,主要有以下四个函数
void Hal_Init( uint8 task_id ) 由osalTaskAdd调用,在osal中注册HAL驱动
void HalDriverInit (void) 由main调用,初始化硬件驱动
uint16 Hal_ProcessEvent( uint8 task_id, uint16 events ) 处理hal相关的驱动事件
void Hal_ProcessPoll ()
HAL-Include 包含 hal驱动和hal相关的头文件
硬件抽象层驱动编译
可以在工程选项中设置需要编译的驱动,
Option-->c/c++compiler->preprocessor选项中设置,如下图
用户自定义驱动
步骤如下:
在HAL目录下的include目录下添加头文件
驱动的实现文件添加到target->>cc2540eb-->>drivers目录下
在target->>cc2540eb-->>config目录下的hal_board_cfg.h中修改硬件驱动配置
配置文件层
分为以下两部分:
GAP角色/安全配置文件
GATT配置文件
通用访问配置文件GAP
分为以下四种角色:
广播者 不可连接的广播设备
观测者 扫描广播,但不发起建立连接
外部设备 可连接的设备 可在单链路层中作为主机
集中器 扫描广播设备并发起连接 在单链路层或多链路层作为主机
一个集中器可以连接三个外设
注:默认的示例只支持外设角色,
可以在编译时添加peripheralBroadcaster.h和peripheralBroadcaster.c文件
排除peripheral.h和peripheral.c
集中器向外部设备发起链接请求,所需参数
边接间隔 两个连接事件之间的时间间隔
从机延迟 设置从机可以跳过若干个连接事件
管理超时 两个成功连接事件之间的最大允许间隔
通用属性配置文件(GATT)
两个设备应用数据的通信就是通过该层实现
建立连接后,设备的两种角色
GATT服务器 为客户端提供数据服务
GATT客户端 从服务器读写应用数据
一个gatt服务器中可以包含一个或多个GATT服务,在simpleBLEPeripheral应用中有三个服务
强制GAP服务 设备和访问信息
强制GATT服务 gatt服务器的信息
SimpleGATTProfile服务 应用数据信息
特性(characteristics) 是服务用到的值,gatt服务器上的属性值保存在表中,每个属性都含有以下属性:
句柄: 在表中的地址
类型: 数据代表的事务,UUID
权限: GATT客户端对属性的访问权限
使用GAP和GATT堆栈API ?????
- ble学习笔记十-------------ble协义栈之硬件抽象层
- ble学习笔记八---------ble协议栈之简介
- ble学习笔记十一-----------ble协议栈之led试验
- ble学习笔记十四---------ble协议栈之按键事件
- Android 学习笔记之三 BLE
- BLE学习笔记
- Android BLE学习笔记
- Android BLE学习笔记
- Android BLE学习笔记
- Android BLE学习笔记
- BLE:CC2540学习笔记
- Android BLE学习笔记
- Android BLE学习笔记
- ble学习笔记九----------ble协议栈之OSAL的运行机理
- ble学习笔记十三-------------ble协议栈之串口收发实验
- ble学习笔记十五----------ble协议栈之flash数据存储实验
- BLE Link Layer学习笔记
- BLE学习
- iOS基础面试题(四)
- JRE与JDK的区别
- Android Service完全解析,关于服务你所需知道的一切(下)
- LeetCode 96 Unique Binary Search Trees II
- muduo源码分析--Reactor模式的在muduo中的使用(二)
- ble学习笔记十-------------ble协义栈之硬件抽象层
- 项目管理学习笔记之二.工作分解
- 内存数据库比较
- iOS进阶面试题----Block部分
- Opencv step by step - 基本数据类型
- CODEVS 3085 相同的后三位
- 设计模式中聚合和组合--代码中的实现
- iOS进阶面试题----多线程
- iOS进阶面试题----经典10道