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

发布者:LovingLife2023最新更新时间:2024-09-23 来源: elecfans关键字:配置  串口打印  Debug  调试信息 手机看文章 扫描二维码
随时随地手机看文章

概述

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

硬件准备

首先需要准备一个开发板,这里我准备的是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定义了设备名称。
在这里插入图片描述

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

串口打印如下所示。

在这里插入图片描述


关键字:配置  串口打印  Debug  调试信息 引用地址:STM32WB55开发(4)----配置串口打印Debug调试信息

上一篇:STM32单片机有哪几种常见的开发环境?
下一篇:可兼容替换STM32F042的32位单片机MM32F0130

推荐阅读最新更新时间:2024-11-19 09:22

stm32 打印数据到PC串口
一、一般情况下,很多人都是利用printf函数重定向来实现的,但是看得不是很明白。 所以,此处利用sprintf函数来实现。 二、整个的思想就是把要打印的数据,放到MCU对PC的串口发送缓冲里。 三、sprintf函数在stdio.h头文件里,所以要想在程序中使用,必须将这个头文件包含进来。 四、示例: void PC_SendChar(uint8_t DataToSend) { RS485_TX_Enable (); USART_SendData (USART1 ,DataToSend); while(USART_GetFlagStatus (USART1 ,USART_FLAG_TC )!=SET ); RS485_RX_
[单片机]
PLC编程设计中的IO配置清单怎么做
控制系统设计是每个工控工程师必须掌握的基本技能,IO清册也就是我们常说的点数统计是首先要做的工作。 一般控制系统点数通常由设计院统计提供,系统点数是仪表专业I/O点数、电气专业I/O点数和控制系统与其他系统的通讯点数总和。准确统计电气和仪表I/O点数可避免电气和仪表专业出现协调不一致的问题,准确的系统点数能为使用单位决策控制系统品牌和系统造价提供依据。 控制系统通常涉及热工检测、模拟量控制、顺序控制和逻辑控制等自动化控制内容,点数是从AI模拟输入点数、AO模拟输出点数、DI开关量输入点数、DO开关量输出点数和控制系统与其他系统通讯点数五个方面统计结果得出。 1、自控系统AI输入点数如何计算 AI指进入控制系统的模拟量输
[嵌入式]
PLC编程设计中的IO<font color='red'>配置</font>清单怎么做
exynos 4412 时钟配置
—————————————————————————————-------- 本文解决的问题: 1、宏观上几个大模块的时钟配置顺序。 2、小模块的时钟选择、分频和一般的配置顺序。 3、对小模块来说,官方手册推荐的时钟源选择问题。 4、本文只以手册的“ 推荐配置”进行说明,“自由玩法”不保证稳定性。 —————————————————————————————-------- 多路选择器选择原则: 1、尽量保持默认配置不动。 2、尽量选择前端频率最高的源。 3、其它手册要求的特殊情况。 —————————————————————————————-------- 几个符号: 左边深色的: 无抖动多路选择器,无抖动意
[单片机]
exynos 4412 时钟<font color='red'>配置</font>
PIC单片机配置位设置方法
写程序的时候可以设置,在Mplab软件里也可以设置。如果用某些PIC专用的烧录工具也可以再烧录界面来设置。 学PIC的单片机首先就必须要学CONFIG配置位等内部寄存器。下面是各种设置配置位的方法: 1:在汇编程序里加入__CONFIG xxxxx(注意下划线_是两条不是一条,后面的“xxxxx”是你需要配置的各个配置位信息。比如:__CONFIG _CP_OFF & _DEBUG_ON & _WRT_ENABLE_ON & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC 2:在C语言程序里加入__CONGFIG(xxxxxx);,(如上面说的
[单片机]
为什么说双摄像头将成为智能手机主流配置
     TNW中文站 4月9日报道 有关苹果公司今年发布的iPhone 7,业内许多传言称苹果将会在大尺寸版本中搭载双摄像头,另外就在最近,中国华为公司发布了新旗舰手机P9,其中也使用了双摄像头(新增一个专用的黑白摄像头)。日前,美国科技新闻网站TheNextWeb指出,双摄像头能够极大提升智能手机拍照的画质,给拍摄者更大的创作空间,将会成为手机行业的主流配置。 TheNextWeb指出,双摄像头配置早已不是纸上谈兵,许多手机厂商已经有了实际行动。除了华为之外,LG的G5手机也采用双摄像头,其中一个为广角镜头。另外,早在2013年就发布的HTC One M8手机,也是双摄像头,其中一个为景深摄像头。 一些消费者或许认
[手机便携]
STM32 JTAG接口PB3PB4配置为IO口使用问题
因为IO口紧张,在原理绘制期间就利用了PB3和PB4,但是在调试程序的时候才发现,PB3和PB4控制不了。 查看了一下芯片手册,发现芯片在上电后,居然默认是JTAG接口,怪自己粗心了。 JTAG和SWD接口对照如下图。 我们可以看到PB3,PB4,PA15都被利用为JTAG接口中,SWD接口只要PA13,PA14。 所以为了重新使用PB3,PB4,我关闭JTAG功能, RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //开启AFIO时钟 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); //禁止JTAG功
[单片机]
STM32 JTAG接口PB3PB4<font color='red'>配置</font>为IO口使用问题
【STM32电机方波】记录4——PWM输出配置
PWM生成原理: 通用定时器可以利用GPIO引脚进行脉冲输出,在配置为比较输出、PWM输出功能时,捕获/比较寄存器通用定时器可以利用GPIO引脚进行脉冲输出,在配置为比较输出、PWM输出功能时,捕获/比较寄存器TIMx_CCR被用作比较功能,下面把它简称为比较寄存器。 这里直接举例说明定时器的PWM输出工作过程:若配置脉冲计数器TIMx_CNT为向上计数,而重载寄存器TIMx_ARR被配置为N,即TIMx_CNT的当前计数值数值X在TIMxCLK时钟源的驱动下不断累加,当TIMx_CNT的数值X大于N时,会重置TIMx_CNT数值为0重新计数。 而在TIMxCNT计数的同时,TIMxCNT的计数值X会与比较寄存器TIMx_CCR
[单片机]
【STM32电机方波】记录4——PWM输出<font color='red'>配置</font>
自动精简配置存储方案选型分析
自动精简配置存储方案能够给操作系统提供大容量的虚拟驱动器。这种技术的核心是“欺骗”。简单的说,实际的物理存储设备可能并没有这么多,而让操作系统认为有这么大的存储空间。这主要是因为企业中的数据往往也是在逐渐增加的,而不是一下子就有这么多。   随着企业数据量的增加,企业可以考虑情况分布增加存储设备。同时,由于操作系统在分配磁盘空间时认为有这么大的磁盘空间,为此就不需要对操作系统进行调整。这就相当于是实现了存储设备的热插拔功能。这可以提高磁盘设备的存储效率。如果这种存储技术符合企业的需求,现在项目管理员要考虑的就是,如何来选择自动精简配置存储方案?毕竟这个解决方案提供商不在少数。项目管理员如何才能够选择适合企业实际情况的、物美价廉的
[模拟电子]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved