STM32CubeMX串口配置及库printf打印

最新版STM32CubeMXV5.0.0已经上传到了网盘,或者自己通过软件在线升级。

    STM32CubeMX运行环境搭建包含两个部分。首先是 Java运行环境安装,其次是STM32CubeMX软件安装。Java 软件和STM32CubeMX 软件都可以在官网找到最新的下载。

        1. Java运行环境,大家可以到 Java 官网 www.java.com下载最新的 Java 软件;

        2.STM32CubeMX可以在ST官网www.st.com/content/st_com/zh.html下载最新的版本;

        3.或者在我网盘上下载全部所需软件资料,链接:https://pan.baidu.com/s/1kWUH08n 密码:4th4

 

新版的STM32CubeMXV5.0.0界面变化较大。

 

1、打开STM32CubeMXV5.0.0,创建工程,配置串口。

### 使用 STM32CubeMX 配置 UART 串口通信实现 `printf` 输出 #### 配置硬件资源 在 STM32CubeMX 中启动项目并选择目标微控制器型号。进入 Pinout & Configuration 页面,找到 USART 或者 UART 外设模块,并启用它[^1]。 对于希望用于重定向标准输出(即 `stdout` 和 `printf` 的默认目的地)的特定 UART 实例来说,通常会选择较低编号的实例如 USART1 或者 USART2 来简化后续操作过程中的处理逻辑[^2]。 #### 设置参数 点击所选 UART/USART 资源旁边的齿轮图标来调整波特率、字长、停止位以及校验方式等基本通讯属性设置;确保这些选项满足实际应用场景需求。一般情况下,默认值即可适用于大多数情况下的调试用途。 为了使能 DMA 功能从而提高传输效率,在 Advanced Settings 下拉菜单内开启 TX/RX 方向上的直接存储器访问(DMA),这有助于减少 CPU 占用时间并允许更稳定的数据流管理。 #### 初始化代码生成 完成上述配置之后保存工程文件并通过工具自动生成初始化 C/C++ 源码框架。此时会自动创建好必要的外设驱动程序及相关中断服务例程(ISR)。 #### 修改 stdio.h 文件映射 为了让 `printf()` 函数能够通过指定好的 UART 接口工作而不是连接到计算机终端设备上显示消息内容,则需修改项目的编译环境配置使得 `_write` 函数被重新定义指向 HAL 提供的发送接口函数 `HAL_UART_Transmit()`. 这样做可以实现在调用 `printf()` 后将字符串经由选定的 UART 发送出去. 具体做法是在 main.c 或其他合适位置加入如下所示代码片段: ```c #include "stm32f4xx_hal.h" int __io_putchar(int ch){ char c = (char)ch; HAL_UART_Transmit(&huart1,&c,1,0xFFFF); // 假定使用 huart1 对象作为打印端口 return ch; } ``` 此段代码实现了简单的字符输出功能,其中 `__io_putchar` 是新lib的标准 I/O 流写入回调方法之一,当执行 `printf` 语句时会被内部调用来逐个传递待输出字符给底层硬件层进行物理传送。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值