4. 软件介绍
4.1. WB软件包
软件包构成
此处以STM32Cube_FW_WB_v1.5.0版本为例
协议栈目录
用户选择不同协议栈实现不同功能,也可使用_802_15_4_fw.bin来运行自定义协议栈
下载方式见环境搭建篇
CPU1整体固件构架
用户可以选择不同的中间件组合实现不同的无线应用场景
STM32WB资源
ST同时提供了许多STM32WB的资源如下所示
其中HAL库集成度高,使用更方便;LL库更接近底层,效率更高
BSP和Middleware使开发者更方便开发应用
STM32WB应用程序
在应用层角度来看,ST还提供了通用模块如下
BLE软件架构层
4.2. 调度器
调度器代码路径如同所示
Task注册函数如下,他会根据task_id将回调函数保存在TaskCb数组当中
注意:这里没有其他判断,所以当相同task_id被注册时会覆盖之前的task_id,应用层应保证task_id不重复
使用SCH_SetTask设置优先级,也就是说Task的优先级是动态的
4.3. 低功耗管理
低功耗目录如下
低功耗模式如下
注意:如果需要保存RF功能,系统不能进入不带RAM保持的STANDBY模式
图中Off模式就是STANDBY模式
4.4. 定时器管理
定时器初始化函数如下
Full模式时,当设备从STANDBY模式重启时,会将所有的内容初始化
Limited模式时,当设备从STANDBY模式重启时,定时器不会将初始化上下文,只会初始化部分丢失的寄存器
用户可以自己配置RTC中断的优先级
定时器创建和删除函数如下
定时器开始函数如下
定时器停止函数如下