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

[STM32WB 蓝牙探学] 3 HeartRate

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

1

1
# _$ ?" S7 S$ z$ e! B
我们需要去逐步认清里面的连接。
1 Heart Rate 功能概述
Heart Rate的应用可以用下面的一个图来简单概括:

2

2

  x( Y( t  F% p
图片来源AN5259
我主要关注的是外设。它有一个包含两个server,以及相应的characteristics。

8 Y% Y$ W. W( C8 B) n3 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去管理任务和低功耗模式

4 v! t! X9 w# `
这些STM的项目工程和相关的文档 都提供了相应的说明,我们只需要理解其中的函数,合理的调用。这个就需要一定的对BLE的理解和相关API的解读。
4  需要理解的几个API 类别4.1 Sequencer
         顺序控制器,我喜欢把它我队列相比较理解,将需要执行的事件注册成一个task,需要的时候调用Task就行。需要注意的是要有UTIL_SEQ_RegTask,UTIL_SEQ_Run这两个,其他根据情况使用。
4.2 Timer server
  我的理解是一个分时调用的功能,它可以让你需要的功能周期性操作。

6 X1 ]9 V  {$ q4 k4.3 Low power manager
         ST已经写好了相关的APIs,需要针对使用。
) i. w( y. t' j+ j9 A. A% J
4.4 GAP GATT
         通过和GAPGATT相关APIs的使用,可以反过来熟悉,GAPperipheral/centralGATT server/client
这些概念和实际的阶段是紧密相关的,通过实际的阶段,去理解概念会弄得更明白,不然就是一团雾水。
首先划分,设备是哪个阶段,要做什么,选择相应的API。比如,heart rate的蓝牙。
1 heart rate sensor 需要被发现了,所以其首先广播,作为外围设备是 GAP peripheral
2 被连接上之后,就是提供数据,是服务器(和TCP类似),因此是GATTservice
对比来看,与之通讯的设备就在对立面。

6 M1 O* j2 }8 Y. {& q5运行流程

3

3
1 m+ A% h) }3 F- S: l% J' ^
. X/ I5 K3 Q4 H! Z8 w& l) i
图片来源AN5259

0 }5 S, q4 n; S$ S" h% m
从运行的框图,我们可以看到SVCCTL_UserEvtRX整个函数很重要,承担着接受事件的分解和处理。将事件分为GAP和GATT,对应处理。

4

4
通过初始化,hci_init 将底层接收到的指令转到SVCCTL_UserEvtRX中处理,这样就脱离了对底层的管理,只需要注重接受到数据的分析。
* Y8 s0 M( b) X
收藏 评论1 发布时间:2020-5-31 10:33

举报

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