你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32U545评测】串口重映射printf打印日志

[复制链接]
Stm32McuLover 提问时间:2023-11-15 19:47 / 未解决

串口是最常用的调试手段之一,根据原理图串口1连接到了STLINK的虚拟串口:
屏幕截图 2023-11-13 222919.png
STM32CubeMX里面开启串口,配置好波特率:
屏幕截图 2023-11-13 223040.png
接下来重映射串口到printf,本次不使用keil自带的micro lib,而是移植一款更加小巧方便的printf库。xprintf - 嵌入式字符串函数,适合容量较小的芯片使用,官网http://elm-chan.org/fsw/strf/xprintf.html
xprintf 是一个紧凑的字符串 I/O 库。 它非常适用于程序存储器不足以用于常规 printf 函数的微型微控制器。 推荐的用途是:将格式化的字符串写入 LCD 或 UART 以及用于调试/维护控制台。
可以使用配置选项配置 xprintf 以减小模块大小。

使用非常简单,只需要2个文件加入工程:
可裁剪的配置:
屏幕截图 2023-11-13 224104.png

与用户代码的接口也十分简单
  1. void uart1_putc (uint8_t chr)
  2. {
  3.     HAL_UART_Transmit(&huart1, &chr, 1, 100);
  4. }
  5. int uart1_getc (void)
  6. {
  7.     uint8_t ch = 0;
  8.     HAL_UART_Receive(&huart1, &ch, 1, 100);
  9.     return ch;
  10. }
复制代码


初始化调用
  1.     xdev_out(uart1_putc);
  2.     xdev_in(uart1_getc);
复制代码


主函数测试代码:
屏幕截图 2023-11-13 224045.png

效果
屏幕截图 2023-11-13 224003.png
stm32u545re_test.zip (9.09 MB, 下载次数: 3)
收藏 评论4 发布时间:2023-11-15 19:47

举报

4个回答
xmshao 回答时间:2023-11-16 10:11:55
对于MCU应用中的输出的话,如果不是基于半主机方式,而是通过UART输出的话,个人倾向于直接使用UART收发函数即可,
不必跟C库搅在一起,反正最终都是调用UART做输入输出,这样更简洁、简单、清爽,动用资源少。貌似楼主介绍的就是这种方式。
落花又见流水 回答时间:2023-12-12 09:27:07

学习学习

这个xprintf占用flash大吗?

STMCU-管管 回答时间:2023-12-12 13:19:37
可以,不错的分享
dhvf1 回答时间:2023-12-12 13:20:47

学习了

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版