你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

[STM32WB 蓝牙探学] 3 HeartRate

[复制链接]
ziziran 发布时间:2020-5-31 10:33
0 前言
在使用了APP建立了一个基本的连接,如heartrate的应用。

1

1
5 {, e, i* I  H- K5 g: W
我们需要去逐步认清里面的连接。
1 Heart Rate 功能概述
Heart Rate的应用可以用下面的一个图来简单概括:

2

2

( \% X+ h, c5 c) W* [
图片来源AN5259
我主要关注的是外设。它有一个包含两个server,以及相应的characteristics。
; K5 G/ f( R% ?5 C) x! W
3 Heart Rate 初始化流程
         软件的初始化,和对应的函数如下:
1.      初始化设备(HAL,重启设备、时钟、功率模式)
2 初始化一些外围
3 初始化话BLE设备的公共地址(如果需要)
  aci_hal_write_config_data()API
4 设置发射功率
aci_hal_set_tx_power_level()API
5 初始化GATT
aci_gatt_init() API
6 初始化GAP
aci_gap_init(“role”)API
7 设置设备安全
aci_gap_set_io_capability()and aci_gap_set_authentication_requirement()APIs
8 设置一些服务
aci_gatt_add_service(),aci_gatt_add_char(),aci_gatt_add_char_desc() APIs
9 使用sequencer去管理任务和低功耗模式
. L( K+ `; i" _8 [, H& ~
这些STM的项目工程和相关的文档 都提供了相应的说明,我们只需要理解其中的函数,合理的调用。这个就需要一定的对BLE的理解和相关API的解读。
4  需要理解的几个API 类别4.1 Sequencer
         顺序控制器,我喜欢把它我队列相比较理解,将需要执行的事件注册成一个task,需要的时候调用Task就行。需要注意的是要有UTIL_SEQ_RegTask,UTIL_SEQ_Run这两个,其他根据情况使用。
4.2 Timer server
  我的理解是一个分时调用的功能,它可以让你需要的功能周期性操作。
& N0 J# V# r2 B; E6 \4 |. g- d
4.3 Low power manager
         ST已经写好了相关的APIs,需要针对使用。

; u" y7 K1 j$ o4.4 GAP GATT
         通过和GAPGATT相关APIs的使用,可以反过来熟悉,GAPperipheral/centralGATT server/client
这些概念和实际的阶段是紧密相关的,通过实际的阶段,去理解概念会弄得更明白,不然就是一团雾水。
首先划分,设备是哪个阶段,要做什么,选择相应的API。比如,heart rate的蓝牙。
1 heart rate sensor 需要被发现了,所以其首先广播,作为外围设备是 GAP peripheral
2 被连接上之后,就是提供数据,是服务器(和TCP类似),因此是GATTservice
对比来看,与之通讯的设备就在对立面。

0 g; h- O1 |% O5 Z  P5运行流程

3

3

" d# r; X( C% C$ ^" p2 f
7 I% ^  P5 l8 e$ h0 ~  Z
图片来源AN5259
8 e3 M8 }# X# i
从运行的框图,我们可以看到SVCCTL_UserEvtRX整个函数很重要,承担着接受事件的分解和处理。将事件分为GAP和GATT,对应处理。

4

4
通过初始化,hci_init 将底层接收到的指令转到SVCCTL_UserEvtRX中处理,这样就脱离了对底层的管理,只需要注重接受到数据的分析。
6 {6 I( {# h" p% O& k
收藏 评论1 发布时间:2020-5-31 10:33

举报

1个回答
ziziran 回答时间:2020-5-31 10:41:50
大家一起学硬件前端的数据采集呀
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版