STM32C542R开发(3)----配置串口打印

发布时间:2026/9/8 19:03:23

STM32C542R开发(3)----配置串口打印
STM32C542R开发.3--配置串口打印概述视频教学样品申请源码下载硬件准备参考程序生成STM32CUBEMX2时钟树配置DEBUG配置串口配置生成项目导入STM32CubeIDE设置工程编码添加头文件printf 重定向串口打印测试演示概述在传统 STM32 开发中我们通常会通过 STM32CubeMX 配置 USART并重定向 printf() 到串口用于输出调试信息。STM32C5 使用新的 STM32CubeMX2 和 HAL2 驱动体系工程结构和部分 API 命名相比传统 HAL 有所变化因此串口配置和代码编写也需要稍作适配。需要样片的可以加群申请925643491 / 615061293 。视频教学https://www.bilibili.com/video/BV1GHgj6bENf/样品申请https://www.wjx.top/vm/OhcKxJk.aspx#源码下载https://download.csdn.net/download/qq_24312945/93389982硬件准备首先需要准备一个开发板这里我准备的是自己绘制的开发板需要的可以进行申请。主控为STM32C542RCT6参考程序https://github.com/CoreMaker-lab/STM32C542R_SENSOR生成STM32CUBEMX2用STM32CUBEMX2生成例程这里使用MCU为STM32C542RCT6。打开 STM32CubeMX2 后进入 Home 首页点击 MCU基于具体芯片型号创建工程在 MCU name 中输入 STM32C542RCT6选择对应的 STM32C5 芯片型号后点击 Continue 进入下一步工程配置。填写工程名称和保存路径后点击 “Automatically Download, Install Create Project”STM32CubeMX2 会自动下载所需软件包并创建工程。STM32CubeMX2 提示 Project Successfully Created 后点击右下角 “Launch Project” 进入工程配置界面。时钟树配置点击左侧外设配置入口进入 Peripherals 配置界面在 System 分类下选择 RCC用于配置系统时钟源HSE Source 选择 Crystal/ceramic resonator启用外部高速晶振LSE Source 选择 Crystal/ceramic resonator启用外部低速晶振点击左侧 Clock 图标进入时钟树配置界面HSE OSC设置外部高速晶振频率这里配置为 24 MHzPSI Mux / PLL选择并配置 PLL 时钟源用于倍频生成系统主频System Mux选择系统时钟来源当前系统主频配置为 144 MHzDEBUG配置在 Peripherals 中选择 Cortex → DEBUG将 Mode 配置为 Single-wire trace asynchronous用于后续程序下载、在线调试和 Trace 调试功能。串口配置查看原理图PA9和PA10设置为开发板的串口。在左侧 Peripherals 中选择 Connectivity → USART1Mode 选择 Async表示配置为异步串口模式Function used by the component 显示为 UART说明 USART1 在异步模式下使用 UART HAL 驱动串口参数配置为115200 波特率、8 位数据位、无校验、1 位停止位、收发模式GPIO TxUSART1_TX 选择 PA9GPIO RxUSART1_RX 选择 PA10PA9 / PA10 均配置为 Alternate 复用功能模式Pull 选择 No pull-up and no pull-downOutput type 选择 Push pullSpeed 选择 Low生成项目修改配置后左下角会提示 Click to save需要先保存当前工程配置点击左侧 Project settings进入工程生成设置页面在 IDE Project Generation 中选择工程格式和工具链本例选择 CMake GCC然后点击 Generate IDE project 生成工程导入STM32CubeIDE打开 STM32CubeIDE点击菜单栏 File选择 Import…准备导入 STM32CubeMX2 生成的 CMake 工程在 Import 窗口中展开 Import STM32 Project选择 STM32 CMake Project点击 Next进入 CMake 工程路径选择页面Project name填写导入到 STM32CubeIDE 中显示的工程名称Source directory选择 STM32CubeMX2 生成的 CMake 工程目录点击 Next继续完成工程导入Toolchain选择 MCU ARM GCC表示使用 ARM GCC 工具链进行编译MCU确认芯片型号为 STM32C542RCTx与前面 STM32CubeMX2 中选择的 MCU 保持一致CPU/Core确认内核为 Cortex-M33Core 为 0点击 Finish完成 CMake 工程导入设置工程编码在 Project Explorer 中选中当前工程点击菜单栏 Project选择 Properties进入工程属性设置在工程属性中选择 ResourceText file encoding 选择 Other编码格式输入 GBK点击 Apply and Close 保存设置添加头文件在 main.c 中添加头文件#includemx_usart1.h#includestdio.h#includestring.hprintf 重定向为了让 printf() 输出到 USART1需要重写 _write() 函数。GCC 工程中printf() 底层会调用 _write() 输出字符因此只需要在 _write() 中调用 HAL_UART_Transmit()就可以把 printf() 的内容通过串口发送出去。int_write(intfile,char*ptr,intlen){hal_uart_handle_t*huart1mx_usart1_uart_gethandle();if(huart1!NULL){HAL_UART_Transmit(huart1,ptr,len,1000);}returnlen;}串口打印测试在 mx_system_init() 初始化完成后可以直接调用 printf() 进行串口打印测试hal_uart_handle_t *huart1 mx_usart1_uart_gethandle();printf(“Hello STM32C5 UART printf\r\n”);printf(“STM32C5 串口打印测试\r\n”);char msg[] “Hello STM32C5 UART\r\n”;HAL_UART_Transmit(huart1, msg, strlen(msg), 1000);演示

相关新闻

ECC:面向 Claude Code 的生产级智能体插件仓库全解析——架构、命令、Hooks 与开发规范

ECC:面向 Claude Code 的生产级智能体插件仓库全解析——架构、命令、Hooks 与开发规范

2026/9/8 19:03:23

ECC:面向 Claude Code 的生产级智能体插件仓库全解析——架构、命令、Hooks 与开发规范 【免费下载链接】ECC The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, …

蓝牙物理层CPFSK/GFSK建模与MATLAB仿真避坑指南

蓝牙物理层CPFSK/GFSK建模与MATLAB仿真避坑指南

2026/9/8 19:03:23

简介:这是基于MATLAB的蓝牙通信系统建模与仿真资源,聚焦CPFSK连续相位频移键控调制方式,适合通信工程专业学生、科研人员及无线通信开发者在学习或验证蓝牙物理层算法时参考。包内共37个文件,以16个mat数据文件、10个m源码脚本为主…

RK3568硬件调试三板斧:串口日志、ADB与设备树实战

RK3568硬件调试三板斧:串口日志、ADB与设备树实战

2026/9/8 18:53:22

RK3568 设备树这么多不知道怎么选?先从硬件调试三板斧说起做 OpenHarmony 系统移植和硬件适配的朋友,大概率都经历过这种场景:开发板拿到手,代码编出来了,烧录也成功了,结果屏幕不亮、触摸没反应、Wi-Fi 死…

基于YOLOv5的车牌识别实战:从数据训练到部署全流程记录

基于YOLOv5的车牌识别实战:从数据训练到部署全流程记录

2026/9/8 19:43:25

简介:基于YOLOV5的目标检测车牌定位与识别项目源码,面向计算机视觉初学者及需落地车牌识别场景的开发者,解决自然场景下车辆车牌快速定位与精准识别问题。压缩包共68个文件,以19个py源码脚本、9个yaml模型配置、5个pt预训练权重、…

Ollama本地部署实战:从安装到API集成的完整指南

Ollama本地部署实战:从安装到API集成的完整指南

2026/9/8 19:43:25

最近这段时间,我身边越来越多朋友把“跑个本地大模型”当成日常操作了。大家用的工具里,出镜率最高的就是 Ollama——也就是 GitHub 上那个 star 已经非常夸张的 ollama/ollama 仓库。你要问我它凭什么这么火,我一句话就能概括:它…

30分钟给Windows 11减重:tiny11builder精简实操

30分钟给Windows 11减重:tiny11builder精简实操

2026/9/8 19:43:25

30分钟给Windows 11减重:tiny11builder精简实操 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 8GB内存的老本,装完Windows 11后台就被预装…

@remotion/vercel:在 Vercel Sandbox 中渲染 Remotion 视频的完整技术解析

@remotion/vercel:在 Vercel Sandbox 中渲染 Remotion 视频的完整技术解析

2026/9/8 19:43:25

remotion/vercel:在 Vercel Sandbox 中渲染 Remotion 视频的完整技术解析 【免费下载链接】remotion 🎥 Make videos programmatically with React 项目地址: https://gitcode.com/GitHub_Trending/re/remotion 本文围绕 Remotion 仓库中的 remot…

医学图像分割网络对比:FCN、U-Net与Transformer架构选型实证

医学图像分割网络对比:FCN、U-Net与Transformer架构选型实证

2026/9/8 19:43:24

简介:基于FCN、Unet、DenseUnet、TransUnet、SwinUnet、EfficientUnet的医学图像分割对比实验包,面向医学影像研究者与深度学习开发人员,采用医学细胞图像数据集构建了六大主流分割网络的统一训练与评估框架,配置灵活,…

前端html2canvas结合print-js打印页面,并解决多余空白页问题

前端html2canvas结合print-js打印页面,并解决多余空白页问题

2026/9/8 19:33:24

一、功能 前端html2canvas打印 HTML页面局部打印 二、代码 结合print-js打印页面 import html2canvas from html2canvas; import printJS from print-js;/** 打印*/const handleDownload async () > {console.log(inputRef.current.scrollWidth,inputRef.current.scrollWid…

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

2026/9/7 20:21:46

本文首发于“生态学者”!从“湿地面积”到“土壤碳密度”:为什么需要重新认识潮汐湿地蓝碳变化?潮汐湿地位于陆地与海洋的交汇地带,包括红树林、盐沼和潮滩,是全球重要的蓝碳生态系统。其土壤能够长期储存大量有机碳&a…

adb抓包

adb抓包

2026/9/8 4:55:53

前言 本文介绍如何通过 tcpdump 在 Android 手机上抓取网络数据包,并在电脑端使用 Wireshark 进行分析。适用于需要排查 App 网络请求、分析接口调用或调试网络问题的开发与测试场景。1. 手机要有 root 权限2. 下载 tcpdump3. adb push C:\Users\zhangkuixun\Downlo…

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

2026/9/7 8:03:37

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战 在云原生基础设施中,容器镜像体积直接决定了服务的部署速度与弹性扩容敏捷度。对于传统的 Go / Java 微服务,镜像体积通常被严格控制在 50MB 到 200MB 以内,拉取镜像只…

芯片良率波动可视化:动画拆解工艺因果,重建客户信任

芯片良率波动可视化:动画拆解工艺因果,重建客户信任

2026/9/8 0:02:30

芯片这个行业有个不太被人摆到台面上、但几乎每天都在发生的场景:客户拿着一条良率曲线截图问你,这批货的良率怎么掉了三个点,是不是工艺出问题了,产生的不良会不会流到他们产线上去。你解释了半天,客户似懂非懂&#…

PyTorch DataLoader参数冲突:sampler与shuffle互斥的根源与正确写法

PyTorch DataLoader参数冲突:sampler与shuffle互斥的根源与正确写法

2026/9/8 0:02:30

ValueError: sampler option is mutually exclusive with shuffle,这个报错我在 PyTorch 的 DataLoader 上至少见过几十次了,而且很有意思的是,它经常不是新手专属——很多写了好几年模型的老手,在从单机改成自定义采样器&#xf…

中国车企再破谣言,GAC吉利零跑获欧盟安全五星

中国车企再破谣言,GAC吉利零跑获欧盟安全五星

2026/9/8 0:02:30

有人可能在网上开着皮卡拍视频,声称中国电动车不仅性能不如美国大排量车型,安全性也堪忧。然而事实恰恰相反,GAC、吉利和零跑最新推出的电动车型在极为严苛的欧盟新车安全评鉴(Euro NCAP)测试中全部斩获满分。就在特斯…

远程协作的工作台整理

远程协作的工作台整理

2026/9/8 4:23:39

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/8 3:19:39

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/8 4:00:23

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…