news 2026/4/15 13:17:45

[STM32C0] 【STM32C092RC 测评】2、板载外设——串口

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[STM32C0] 【STM32C092RC 测评】2、板载外设——串口

在进行新开发板测试时,我们优先进行了板载外设的串口功能测试。鉴于串口调试功能在整个测试流程中的重要性,其能够持续提供测试状态的关键信息输出,因此,我们采用printf打印功能作为测试过程中的状态监测手段,这是首要进行串口功能调试的核心考量。
当前的ST开发板普遍集成了调试器。ST-LINK均支持虚拟串口功能。本次任务旨在实现单片机串口与虚拟串口的连接,并利用板载调试器与PC机进行通信。随后,通过PC端上位机的串口调试工具进行数据监控与分析。
我们先看一下这款开发板的虚拟串口的位置:

STlink的虚拟串口主要连接到PA2和PA3,如下图:

在STM32CubeMX中,观察到两个引脚可配置为UART2功能,我们打开UART2功能,可以看到默认引脚如下:

如果没有特殊要求可以直接使用默认配置,波特率115200:

接下来我们生成代码,然后加入如下底代码配置printf:

复制

  1. <p>#if defined(__ICCARM__)</p><p>__ATTRIBUTES size_t __write(int, const unsigned char *, size_t);</p><p>#endif /* __ICCARM__ */</p><p>#if defined(__ICCARM__)</p><p>/* New definition from EWARM V9, compatible with EWARM8 */</p><p>int iar_fputc(int ch);</p><p>#define PUTCHAR_PROTOTYPE int iar_fputc(int ch)</p><p>#elif defined ( __CC_ARM ) || defined(__ARMCC_VERSION)</p><p>/* ARM Compiler 5/6*/</p><p>#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)</p><p>#elif defined(__GNUC__)</p><p>#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)</p><p>#endif /* __ICCARM__ */</p>


注意printf属于标准库<stdio.h>里面的内容,前面要包含以下;
接下来重写printf,使其与UART2关联:

复制

  1. <p>PUTCHAR_PROTOTYPE</p><p>{</p><p> /* Place your implementation of fputc here */</p><p> /* e.g. write a character to the USART3 and Loop until the end of transmission */</p><p> HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF);</p><p> return ch;</p><p>}</p>


接下来我们在初始化阶段打印“21ic C092 Test Start!”,然后可以看到串口调试工具在每次复位看到:


---------------------
作者:孤独的单行者
链接:https://bbs.21ic.com/forum.php?mod=viewthread&tid=3452456
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 2:16:09

创客匠人:AI 驱动 IP 阶梯式交付,破解 “层间断层” 的变现困局

一、行业痛点&#xff1a;IP 的 “层间断层”—— 公域吸粉&#xff0c;私域流失&#xff0c;付费难留存“公域短视频点赞过万&#xff0c;私域加粉后却无人互动&#xff1b;付费课程卖出去&#xff0c;用户学完即失联”—— 这是 67% 创始人 IP 在知识变现中面临的核心困境。第…

作者头像 李华
网站建设 2026/4/13 11:21:10

训练模型缺数据吗?北大团队开源首个LLM驱动数据工厂

数据质量决定了模型智能的上限&#xff0c;而DataFlow将数据准备从手工作坊升级为了自动化工厂。北京大学、上海人工智能实验室等机构联合推出DataFlow框架。面对大语言模型开发中数据处理流程碎片化、脚本混乱、难以复现的行业痛点&#xff0c;DataFlow提出了一个统一的、可编…

作者头像 李华
网站建设 2026/4/9 5:49:47

python园艺温室课程实验任务提交系统vue论文

目录已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python园艺温室课程实验任务提交系统…

作者头像 李华
网站建设 2026/4/6 1:31:05

python走失儿童认领与登记系统vue

目录已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python走失儿童认领与登记系统vue …

作者头像 李华
网站建设 2026/4/10 17:50:44

内核驱动开发与用户级驱动开发:深度对比与应用场景解析

在操作系统开发中&#xff0c;驱动程序是不可或缺的一部分。它们负责操作系统与硬件之间的通信&#xff0c;使得硬件设备可以在操作系统上正常工作。根据驱动程序的运行环境&#xff0c;驱动开发可以分为内核驱动开发和用户级驱动开发。这两种类型的驱动在开发难度、性能、调试…

作者头像 李华