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

基于STM32WB55的配置串口打印Debug经验分享

[复制链接]
攻城狮Melo 发布时间:2023-12-3 16:40
套件概述在STM32WB55系列微控制器上进行开发时,实时监控应用程序的运行情况和调试潜在问题是至关重要的。使用串口(USART/UART)进行Debug信息打印是一种简便、高效的方法。下面是如何在STM32WB55上配置串口来打印调试信息的概述。 微信图片_20231203164005.png 选择芯片型号 微信图片_20231203164001.png 配置时钟源 HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示: 微信图片_20231203163958.png 配置时钟树 微信图片_20231203163955.png RTC时钟配置 微信图片_20231203163951.png RFWKP时钟配置 微信图片_20231203163948.png 查看开启STM32_WPAN条件 可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。 微信图片_20231203163945.png 配置HSEM 硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。开启HSEM如下。 微信图片_20231203163942.png 配置IPCC 通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。开启如下所示。 微信图片_20231203163939.png 配置RTC 微信图片_20231203163936.png 启动RF 微信图片_20231203163932.png 开启蓝牙 微信图片_20231203163929.png 开启串口调试 CFG_HW_USART1_ENABLED允许开发者选择是否使用USART1作为跟踪输出的通道,并且这个配置只在特定的设置下可用。这样的配置通常用于嵌入式系统的调试,使得开发者可以实时查看设备的状态和输出信息。 微信图片_20231203163910.png CFG_HW_USART1_ENABLED这是一个配置标志,当设置为启用时,USART1会被用作输出跟踪的通道。当禁用时,USART1不会用于这个目的。仅当USART1由CubeMX用户界面配置时,此特定的硬件配置才可用:这意味着只有在使用ST的CubeMX工具配置USART1时,才可以使用CFG_HW_USART1_ENABLED这一特定的配置选项。查看原理图可以的是PA9和PA10与CH340链接在一起,且为串口打印端口。 微信图片_20231203163906.png 串口配置如下。 微信图片_20231203163900.png 开启CFG_HW_USART1_ENABLED。 微信图片_20231203163856.png 关闭MX_USART1_UART_Init函数的生成。 微信图片_20231203163851.png CFG_HW_USART1_DMA_TX_SUPPORTED允许开发者启用USART1的DMA发送功能。启用此功能可以提高USART1发送数据时的效率,但在配置上可能需要更多的步骤和注意事项。当其被设置为启用时,USART1将使用DMA来进行数据发送(TX)。DMA允许数据从内存直接发送到外设(在这种情况下是USART1),而不需要CPU的干预,从而提高效率和数据传输速度。 微信图片_20231203163846.png 开启DMA。 微信图片_20231203163842.png 开启中断。 微信图片_20231203163839.png 启用串口1的tx的DMA。 微信图片_20231203163836.png 若无法开启可以重新打开BLE配置。 微信图片_20231203163833.png 启动串口1调试跟踪。 微信图片_20231203163830.png 启用应用程序中的跟踪 。 微信图片_20231203163826.png 配置蓝牙参数 配置为自定义模板。 微信图片_20231203163822.png 命名设备名 微信图片_20231203163818.png 配置BLE GATT 微信图片_20231203163815.png 配置SVC 微信图片_20231203163811.png 设置工程信息 微信图片_20231203163808.png 工程文件设置 微信图片_20231203163805.png Keil工程配置 微信图片_20231203163802.png 代码配置 在main.c中添加如下头文件。
  1. /* USER CODE BEGIN Includes */
  2. #include "stm32_seq.h"
  3. /* USER CODE END Includes */
复制代码
UTIL_SEQ_Run(UTIL_SEQ_DEFAULT)函数应该在应用程序的while循环中,启动任务调度。
  1.   /* USER CODE BEGIN WHILE */
  2.   while (1)
  3.   {
  4.     /* USER CODE END WHILE */
  5.     MX_APPE_Process();
  6.     /* USER CODE BEGIN 3 */
  7.     UTIL_SEQ_Run(UTIL_SEQ_DEFAULT);
  8.   }
  9.   /* USER CODE END 3 */
  10. }
复制代码
在app_entry.c中添加初始化 APPD_Init()。
  1. void MX_APPE_Init( void )
  2. {
  3.   System_Init( );       /**< System initialization */
  4.   SystemPower_Config(); /**< Configure the system Power Mode */
  5.   HW_TS_Init(hw_ts_InitMode_Full, &hrtc); /**< Initialize the TimerServer */
  6. /* USER CODE BEGIN APPE_Init_1 */
  7.     APPD_Init();
  8. /* USER CODE END APPE_Init_1 */
  9.   appe_Tl_Init();  /* Initialize all transport layers */
  10.   /**
  11.    * From now, the application is waiting for the ready event ( VS_HCI_C2_Ready )
  12.    * received on the system channel before starting the Stack
  13.    * This system event is received with APPE_SysUserEvtRx()
  14.    */
  15. /* USER CODE BEGIN APPE_Init_2 */
  16. /* USER CODE END APPE_Init_2 */
  17.    return;
  18. }
复制代码
结果演示 在app_ble.c中,数组a_AdvData定义了设备名称。 微信图片_20231203163757.png 将设备设置为一般可发现模式,若成功会打印如下参数。 微信图片_20231203163754.png 串口打印如下所示。 微信图片_20231203163750.png 转载自:记帖如有侵权请联系删除
收藏 评论0 发布时间:2023-12-3 16:40

举报

0个回答

所属标签

相似分享

官网相关资源

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