4. 软件介绍

4.1. WB软件包

软件包构成

此处以STM32Cube_FW_WB_v1.5.0版本为例

3-1

软件包ST中文官网下载地址

软件包GitHub下载地址

协议栈目录

3-2

用户选择不同协议栈实现不同功能,也可使用_802_15_4_fw.bin来运行自定义协议栈

下载方式见环境搭建篇

CPU1整体固件构架

3-3

用户可以选择不同的中间件组合实现不同的无线应用场景

STM32WB资源

ST同时提供了许多STM32WB的资源如下所示

3-4

其中HAL库集成度高,使用更方便;LL库更接近底层,效率更高

BSP和Middleware使开发者更方便开发应用

STM32WB应用程序

在应用层角度来看,ST还提供了通用模块如下

3-5

BLE软件架构层

3-6

4.2. 调度器

调度器代码路径如同所示

3-7

Task注册函数如下,他会根据task_id将回调函数保存在TaskCb数组当中

3-8

注意:这里没有其他判断,所以当相同task_id被注册时会覆盖之前的task_id,应用层应保证task_id不重复

3-9

3-10

使用SCH_SetTask设置优先级,也就是说Task的优先级是动态的

3-11

3-12

3-13

3-14

3-15

4.3. 低功耗管理

低功耗目录如下

3-16

低功耗模式如下

3-17

注意:如果需要保存RF功能,系统不能进入不带RAM保持的STANDBY模式

3-18

图中Off模式就是STANDBY模式

4.4. 定时器管理

3-19

定时器初始化函数如下

3-20

Full模式时,当设备从STANDBY模式重启时,会将所有的内容初始化

Limited模式时,当设备从STANDBY模式重启时,定时器不会将初始化上下文,只会初始化部分丢失的寄存器

用户可以自己配置RTC中断的优先级

定时器创建和删除函数如下

3-21

定时器开始函数如下

3-22

定时器停止函数如下

3-23