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

【ST WBA Application】使用CubeMX开发蓝牙应用——工程代码结构

[复制链接]
EPTmachine 发布时间:2025-7-3 23:27

通过对硬件和STM32_WPAN的配置,BLE GATT应用的主要框架搭建完毕。

添加和应用相关的硬件配置,根据应用中GATT的配置,需要使用LED和按键来作为应用的外设。

Characteristic_Setting.png

NUCLEO-WBA65RI上的LED和按键的原理图如下

LED_Schmetic.png

Key_Button_Schematic.png

MCU_Pins.png

LED和按键的引脚分布如下

外设 MCU引脚
LED1 PD8
LED2 PC4
LED3 PB8
B1 PC13
B2 PC5
B3 PB4

在CubeMX启用上述的引脚,LED引脚设置为GPIO_Ouput,按键引脚设置为外部中断。

LED_Key_Setup.png

1、工程代码生成

在工程管理界面修改堆栈使用的空间大小

Heap_Size_Change.png

Advanced Settings界面修改USART1的代码生成配置

USART_Code_Gen_Config.png

保存并生成代码。

2、工程代码结构

生成的工程代码的分布大致如下

Project_File_Class.png

各部分代码的内容和功能如下:

  • Core文件夹是应用程序入口函数的定义,包括硬件初始化调用、中断配置、调度配置、任务注册等,是应用开发是主要修改的部分。
  • Drivers文件夹主要包括STM32_HAL_Driver的驱动以及CMSIS提供的芯片接口以及芯片寄存器定义等底层的带代码;
  • Middlleware文件夹包括库文件和BLE Stack等协议逐渐,比如BLE应用中的BLE Service管理、系统指令等;
  • WPAN文件中包含Wireless Personal Area Network提供的系统组件、硬件接口等通用函数;
  • STM32_WPAN文件夹中包括根据CubeMX配置生成的函数以及调用WPAN通用函数的接口
  • System文件夹中包含具体芯片硬件的初始化函数
  • Utilities文件夹包含调试、低功耗管理、标准库函数功能等通用系统功能函数

使用 CubeMX设置STM32_WPAN中的CFG_GAP_DEVICE_NAME Advertising_Config1.png

在STM32_WPAN文件夹的App/app_ble.c中可以找到由此生成代码;

app_ble_Advertising.png

static char a_GapDeviceName[] = {  'M', 'y', '_', 'P', '2', 'P', '_', 'S', 'e', 'r', 'v', 'e', 'r' }; /* Gap Device Name */

同样地,在STM32_WPAN文件夹的App/p2p_server.h文件中可以找到定义的characteristic的定义

p2p_server_STM32_WPAN.png

使用STM32CubeMX辅助生成BLE GATT应用中代码,在了解工程的代码分布后,可以更好地理解工程,便于代码地查看和修改。

官方网站可以找到相关的工程结构说明,可以作为理解CubeMX生成代码的参考。

https://wiki.st.com/stm32mcu/wiki/Connectivity:STM32CubeWBA_SW_Architecture

3、添加BSP代码

下载STM32WBAxx_NUCLEO_BSP的代码

https://github.com/STMicroelectronics/stm32wbaxx-nucleo-bsp/tree/main

将其添加到工程的Drivers目录中。

BSP_Code_Inter.png

并在工程配置中,添加BSP文件夹路径。

BSP_GNU_C_Path.png

收藏 评论0 发布时间:2025-7-3 23:27

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版