# 软件介绍 ## WB软件包 ### 软件包构成 此处以STM32Cube_FW_WB_v1.5.0版本为例 ![3-1](doc/3-1.png) [软件包ST中文官网下载地址](https://www.st.com/zh/embedded-software/stm32cubewb.html) [软件包GitHub下载地址](https://github.com/STMicroelectronics/STM32CubeWB) ### 协议栈目录 ![3-2](doc/3-2.png) 用户选择不同协议栈实现不同功能,也可使用_802_15_4_fw.bin来运行自定义协议栈 下载方式见环境搭建篇 ### CPU1整体固件构架 ![3-3](doc/3-3.png) 用户可以选择不同的中间件组合实现不同的无线应用场景 ### STM32WB资源 ST同时提供了许多STM32WB的资源如下所示 ![3-4](doc/3-4.png) 其中HAL库集成度高,使用更方便;LL库更接近底层,效率更高 BSP和Middleware使开发者更方便开发应用 ### STM32WB应用程序 在应用层角度来看,ST还提供了通用模块如下 ![3-5](doc/3-5.png) ### BLE软件架构层 ![3-6](doc/3-6.png) ## 调度器 调度器代码路径如同所示 ![3-7](doc/3-7.png) Task注册函数如下,他会根据task_id将回调函数保存在TaskCb数组当中 ![3-8](doc/3-8.png) **注意:这里没有其他判断,所以当相同task_id被注册时会覆盖之前的task_id,应用层应保证task_id不重复** ![3-9](doc/3-9.png) ![3-10](doc/3-10.png) 使用SCH_SetTask设置优先级,也就是说Task的优先级是动态的 ![3-11](doc/3-11.png) ![3-12](doc/3-12.png) ![3-13](doc/3-13.png) ![3-14](doc/3-14.png) ![3-15](doc/3-15.png) ## 低功耗管理 低功耗目录如下 ![3-16](doc/3-16.png) 低功耗模式如下 ![3-17](doc/3-17.png) **注意:如果需要保存RF功能,系统不能进入不带RAM保持的STANDBY模式** ![3-18](doc/3-18.png) 图中Off模式就是STANDBY模式 ## 定时器管理 ![3-19](doc/3-19.png) 定时器初始化函数如下 ![3-20](doc/3-20.png) **Full模式时,当设备从STANDBY模式重启时,会将所有的内容初始化** **Limited模式时,当设备从STANDBY模式重启时,定时器不会将初始化上下文,只会初始化部分丢失的寄存器** 用户可以自己配置RTC中断的优先级 定时器创建和删除函数如下 ![3-21](doc/3-21.png) 定时器开始函数如下 ![3-22](doc/3-22.png) 定时器停止函数如下 ![3-23](doc/3-23.png)