概述
在STM32WB55系列微控制器上进行开发时,实时监控应用程序的运行情况和调试潜在问题是至关重要的。使用串口(USART/UART)进行Debug信息打印是一种简便、高效的方法。下面是如何在STM32WB55上配置串口来打印调试信息的概述。
最近在弄ST的课程,需要样片的可以加群申请:615061293 。
硬件准备
首先需要准备一个开发板,这里我准备的是WB55RG 的开发板:
视频教学
[https://www.bilibili.com/video/BV16h4y1w7WT/]
样品申请
[https://www.wjx.top/vm/OhcKxJk.aspx#]
源码下载
[https://download.csdn.net/download/qq_24312945/88346884]
选择芯片型号

配置时钟源
HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:
配置时钟树

RTC时钟配置

RFWKP时钟配置

查看开启STM32_WPAN条件
可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。
配置HSEM
硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。
开启HSEM如下。
配置IPCC
通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。
开启如下所示。

配置RTC

启动RF

开启蓝牙

开启串口调试
CFG_HW_USART1_ENABLED允许开发者选择是否使用USART1作为跟踪输出的通道,并且这个配置只在特定的设置下可用。这样的配置通常用于嵌入式系统的调试,使得开发者可以实时查看设备的状态和输出信息。
CFG_HW_USART1_ENABLED这是一个配置标志,当设置为启用时,USART1会被用作输出跟踪的通道。当禁用时,USART1不会用于这个目的。
仅当USART1由CubeMX用户界面配置时,此特定的硬件配置才可用:这意味着只有在使用ST的CubeMX工具配置USART1时,才可以使用CFG_HW_USART1_ENABLED这一特定的配置选项。
查看原理图可以的是PA9和PA10与CH340链接在一起,且为串口打印端口。

串口配置如下。
开启CFG_HW_USART1_ENABLED。
关闭MX_USART1_UART_Init函数的生成。
CFG_HW_USART1_DMA_TX_SUPPORTED允许开发者启用USART1的DMA发送功能。启用此功能可以提高USART1发送数据时的效率,但在配置上可能需要更多的步骤和注意事项。
当其被设置为启用时,USART1将使用DMA来进行数据发送(TX)。DMA允许数据从内存直接发送到外设(在这种情况下是USART1),而不需要CPU的干预,从而提高效率和数据传输速度。
开启DMA。
开启中断。

启用串口1的tx的DMA。

若无法开启可以重新打开BLE配置。

启动串口1调试跟踪。

启用应用程序中的跟踪 。

配置蓝牙参数
配置为自定义模板。
命名设备名

配置BLE GATT

配置SVC
设置工程信息

工程文件设置

Keil工程配置

代码配置
在main.c中添加如下头文件。
/* USER CODE BEGIN Includes */
#include "stm32_seq.h"
/* USER CODE END Includes */
UTIL_SEQ_Run(UTIL_SEQ_DEFAULT)函数应该在应用程序的while循环中,启动任务调度。
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
MX_APPE_Process();
/* USER CODE BEGIN 3 */
UTIL_SEQ_Run(UTIL_SEQ_DEFAULT);
}
/* USER CODE END 3 */
}
在app_entry.c中添加初始化 APPD_Init()。
void MX_APPE_Init( void )
{
System_Init( ); /**< System initialization */
SystemPower_Config(); /**< Configure the system Power Mode */
HW_TS_Init(hw_ts_InitMode_Full, &hrtc); /**< Initialize the TimerServer */
/* USER CODE BEGIN APPE_Init_1 */
APPD_Init();
/* USER CODE END APPE_Init_1 */
appe_Tl_Init(); /* Initialize all transport layers */
/**
* From now, the application is waiting for the ready event ( VS_HCI_C2_Ready )
* received on the system channel before starting the Stack
* This system event is received with APPE_SysUserEvtRx()
*/
/* USER CODE BEGIN APPE_Init_2 */
/* USER CODE END APPE_Init_2 */
return;
}
结果演示
在app_ble.c中,数组a_AdvData定义了设备名称。
将设备设置为一般可发现模式,若成功会打印如下参数。
串口打印如下所示。

-
蓝牙
+关注
关注
119文章
6235浏览量
177667 -
BLE
+关注
关注
13文章
748浏览量
66038 -
配置
+关注
关注
1文章
194浏览量
19399 -
串口打印
+关注
关注
0文章
11浏览量
3313 -
STM32WB55
+关注
关注
0文章
26浏览量
1934
发布评论请先 登录
STM32WB55开发(1)----套件概述
STM32WB55开发板单板设计
STM32WB55是如何在RT-Thread系统上移植的
STM32WB55的相关资料推荐
STM32WB55如何检测/调试P-NUCLEO-WB55.Nucleo的BLE_p2pServer中的read_event示例代码
如何控制stm32wb55的电源呢
是否可以将MAC层代码集成到STM32WB55中?
STM32WB55开发板(一)单板设计-硬件介绍
STM32WB55 蓝牙协议栈运行流程解析
STM32WB55在RT-Thread系统上移植官方蓝牙BLE功能
stm32wb55 基于rtt的ble sample制作过程
STM32WB55 用 cubemx 生成串口打印

STM32WB55开发(4)----配置串口打印Debug调试信息
评论