搜索
查看: 1235|回复: 1

[原创] [STM32WB 蓝牙探学] 3 HeartRate

[复制链接]

该用户从未签到

4

主题

19

帖子

0

蝴蝶豆

中级会员

最后登录
2021-2-17
发表于 2020-5-31 10:33:11 | 显示全部楼层 |阅读模式
0 前言
在使用了APP建立了一个基本的连接,如heartrate的应用。

1

1

我们需要去逐步认清里面的连接。
1 Heart Rate 功能概述
Heart Rate的应用可以用下面的一个图来简单概括:

2

2

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

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去管理任务和低功耗模式

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

4.3 Low power manager
         ST已经写好了相关的APIs,需要针对使用。

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

5运行流程

3

3


图片来源AN5259

从运行的框图,我们可以看到SVCCTL_UserEvtRX整个函数很重要,承担着接受事件的分解和处理。将事件分为GAP和GATT,对应处理。

4

4
通过初始化,hci_init 将底层接收到的指令转到SVCCTL_UserEvtRX中处理,这样就脱离了对底层的管理,只需要注重接受到数据的分析。

回复

使用道具 举报

该用户从未签到

4

主题

19

帖子

0

蝴蝶豆

中级会员

最后登录
2021-2-17
 楼主| 发表于 2020-5-31 10:41:50 | 显示全部楼层
大家一起学硬件前端的数据采集呀
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-5-8 05:49 , Processed in 1.165431 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表