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

news2025/5/26 1:49:55

STM32WB55开发----4.配置串口打印Debug调试信息

  • 概述
  • 硬件准备
  • 视频教学
  • 样品申请
  • 选择芯片型号
  • 配置时钟源
  • 配置时钟树
  • RTC时钟配置
  • 查看开启STM32_WPAN条件
  • 配置HSEM
  • 配置IPCC
  • 配置RTC
  • 启动RF
  • 开启蓝牙
  • 开启串口调试
  • 配置蓝牙参数
  • 设置工程信息
  • 工程文件设置
  • Keil工程配置
  • 代码配置
  • 结果演示

概述

在STM32WB55系列微控制器上进行开发时,实时监控应用程序的运行情况和调试潜在问题是至关重要的。使用串口(USART/UART)进行Debug信息打印是一种简便、高效的方法。下面是如何在STM32WB55上配置串口来打印调试信息的概述。
最近在弄ST的课程,需要样片的可以加群申请:615061293 。

硬件准备

首先需要准备一个开发板,这里我准备的是WB55RG 的开发板:
在这里插入图片描述

视频教学

https://www.bilibili.com/video/BV16h4y1w7WT/

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

样品申请

https://www.wjx.top/vm/OhcKxJk.aspx#

选择芯片型号

在这里插入图片描述

配置时钟源

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定义了设备名称。
在这里插入图片描述

将设备设置为一般可发现模式,若成功会打印如下参数。
在这里插入图片描述

串口打印如下所示。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1010465.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

000_差分信号

1.什么是差分信号 差分信号又叫做差模信号&#xff0c;使用差分信号传输时&#xff0c;需要2根信号线&#xff0c;这2根信号线的振幅相等&#xff0c;相位相反&#xff0c;通过2根信号线的电压差值来表示逻辑0和逻辑1。 差分信号表示逻辑值如下图&#xff1a; 2.差分信号的特…

合并单元格中自动填充数字序列的方法详解

我们如何在Excel中将序列号填充到不同大小的合并单元格列表中?我们首先想到的是拖动“自动填充”手柄来填充合并的单元格,但在这种情况下,我们将收到以下警告消息,并且无法填充合并的单元。 有没有一种方法可以在不必手动键入数字的情况下对合并的单元格进行编号? 例如,…

深兰科技入围“虎嗅·大鲸榜2023工业AI高成长科技公司TOP30”

9月7日&#xff0c;虎嗅智库主办的“虎嗅2023工业AI大会”&#xff0c;在苏州工业园顺利召开&#xff0c;众多优秀工业和AI企业齐聚一堂&#xff0c;共同探讨当下人工智能在工业制造各场景、环节中所发挥的重要作用以及未来发展等重要问题。 在本次大会上&#xff0c;虎嗅正式发…

PIMPL技巧

PIMPL&#xff08;Pointer to IMPLementation&#xff09;是一种设计模式&#xff0c;也被称为“编译器实现”或“Opaque Pointer”模式。它是一种用于隐藏类的内部实现细节的C编程技巧。PIMPL的核心思想是将类的实现细节封装在一个独立的私有类中&#xff0c;并在公共接口类中…

左孩子右兄弟(2023寒假每日一题 18)

对于一棵多叉树&#xff0c;我们可以通过 “左孩子右兄弟” 表示法&#xff0c;将其转化成一棵二叉树。 如果我们认为每个结点的子结点是无序的&#xff0c;那么得到的二叉树可能不唯一。 换句话说&#xff0c;每个结点可以选任意子结点作为左孩子&#xff0c;并按任意顺序连…

【antd】使用antd的table组件onChange事件中,无法正确获取到父组件的最新state问题

先说结论 是闭包的原因导致我们的state数据在useEffect注入依赖后&#xff0c;打印的是最新值&#xff0c;而在onTableChange事件中打印获取的是闭包时的缓存值。 解决办法 引入useRef去保存state&#xff0c;这样就能确保每次拿到的引用都是新的唯一的最新值。 代码示例&a…

C++之调试内存访问错误(二百一十一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

PythonUI自动化测试 —— 浏览器启动参数设置

网上的文章对小白不友好呀&#xff0c;都是给你一堆参数&#xff0c;都不教你怎么使用&#xff0c;直接跳过了最重要的部分&#xff0c;写下该文章希望对后续人有指导性作用 什么参数都不设置时的启动方式 import time from selenium import webdriver# 创建浏览器驱动参数对象…

NSSCTF之Misc篇刷题记录(16)

NSSCTF之Misc篇刷题记录&#xff08;16&#xff09; [黑盾杯 2020]encrypt[UTCTF 2020]Spectre[UTCTF 2020]Observe closely NSSCTF平台&#xff1a;https://www.nssctf.cn/ PS&#xff1a;所有FLAG改为NSSCTF [黑盾杯 2020]encrypt UTAxSlUwTkRWRVo3Um1GclpWOWxibU55ZVhCMGFX…

选择离子风棒需要注意什么?

离子风棒是一种固定式静电消除器&#xff0c;具有铜质外壳、铝制外壳、不锈钢外壳、坚固美观、风力强劲、经久耐用、耐酸碱、耐腐蚀、除静电除尘快的特点&#xff0c;适用于自动除静电除灰尘装置。 作用原理&#xff1a;离子风棒可产生大量的带正负电荷的气团&#xff0c;可以…

UG\NX二次开发 获取工作部件的完整名称、文件名称、文件夹路径 UF_ASSEM_ask_component_data

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 简介: UG\NX二次开发 获取工作部件的完整名称、文件名称、文件夹路径 UF_ASSEM_ask_component_data 效果: 代码: //获取工作部件的完整名称、文件名称、文件夹路径…

算法分析与设计编程题 动态规划

矩阵连乘 题目描述 解题代码 void printOptimalParens(vector<vector<int>>& partition, int i, int j) {if (i j) cout << "A" << i; // 单个矩阵&#xff0c;无需划分else {cout << "(";printOptimalParens(partit…

异步FIFO设计的仿真与综合技术(3)

概述 本文主体翻译自C. E. Cummings and S. Design, “Simulation and Synthesis Techniques for Asynchronous FIFO Design 一文&#xff0c;添加了笔者的个人理解与注释&#xff0c;文中蓝色部分为笔者注或意译。前文链接&#xff1a; 异步FIFO设计的仿真与综合技术&#xf…

29.Xaml TreeView控件---->树形控件,节点的形式显示数据

1.运行效果 2.运行源码 a.Xaml源码 <Window x:Class="testView.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mic…

栈和队列讲解

栈和队列 栈和队列3.1 栈和队列的定义和特点3.2 案例引用3.3 栈的顺序表示和实现3.4 栈的链式表示和实现3.5 队列的顺序表示和实现3.6 队列的链式表示和实现 3.1 栈和队列的定义和特点 栈 (stack) 是限定仅在表尾进行插入或删除操作的线性表。 因此&#xff0c; 对栈来说&…

树莓派4B使用Docker部署SpringBoot项目——(一)树莓派安装docker

使用Shell7连接树莓派&#xff0c;命令行执行安装命令&#xff0c;等待安装成功即可。 apt install docker.io执行docker version查看docker版本信息。 其他docker命令。 docker images 查看镜像 docker ps -a 查看所有容器 docker ps 查看运行的容器

社区分享|MeterSphere变身“啄木鸟”,助力云帐房落地接口自动化测试

云帐房网络科技有限公司&#xff08;以下简称为“云帐房”&#xff09;成立于2015年3月&#xff0c;以“成为最值得信赖的税务智能公司”为愿景&#xff0c;运用人工智能、大数据等互联网技术&#xff0c;结合深厚的财税行业服务经验&#xff0c;为代账公司和中大型企业提供智能…

Linux中使用Docker安装ElasticSearch7.10.x集群

使用Docker安装ElasticSearch7.10.x单节点请访问这里 一、集群环境说明 服务器IP地址192.168.137.1&#xff0c;192.168.137.2&#xff0c;192.168.137.3 二、前期准备 1. 拉取镜像 docker pull elasticsearch:7.10.12. 首先需要创建一个用于生成秘钥的初始容器&#xff0…

一体化研发协作赋能平台:Apipost

作为一款专为程序员打造的API管理工具&#xff0c;Apipost也成为开发人员圈子里的一款热门工具。Apipost拥有强大的功能和便捷操作性&#xff0c;这也让许多开发者爱不释手。那么&#xff0c;Apipost到底有哪些吸引人的特点呢&#xff1f;本文将为您详细介绍。 统一API管理 Ap…

qt 移植到vs后,常见问题汇总????

1.第一次在VS中编译QT项目&#xff0c;因为在MinGW中不能编译带有qtwebengine的程序&#xff0c;因为这个引擎使用的google浏览器的内核&#xff0c;据QT官方的说法&#xff1a;google不喜欢MinGW,所以QT5.5以后的版本中带有这个模块的的部分将无法编译通过&#xff0c;我们只能…