良许Linux教程网 干货合集 打印输出教程 | UART打印输出配置,基于STM32(Keil、IAR)

打印输出教程 | UART打印输出配置,基于STM32(Keil、IAR)

1写在前面

在学习MCU时,使用UART串口输出,算是最基础的知识。因此,通过串口映射实现printf也是最常见的方法。

本文针对初学者,讲述基于STM32在Keil、 IAR中实现printf输出的配置。

在已有UART收发工程的基础上,只需要两步就可实现printf打印输出:

  • 使用微库
  • 串口映射

2使用微库

自己新建的Keil、 IAR工程,需要自己“勾选”微库。使用STM32CubeMX工具生成的工程,默认“勾选”微库。

Keil MDK-ARM使用微库

Project -> Options for Target -> Target 勾选上“Use Micro LIB”,如下图:

image-20230803224725738
image-20230803224725738

IAR EWARM使用微库

Project -> Options -> General Options -> Library Configuration 选中“Full”,如下图:

image-20230803224728647
image-20230803224728647

3串口映射

这个原理很简单,你要使用printf输出到UART串口,就需要进行一次映射。也就是大家说的重定义函数fputc

这里主要就是将UART输出字符实现即可(提供标准库和HAL库例程)。

针对Keil和IAR的编译器,fputc函数(HAL库):

int fputc(int ch, FILE *f)
{
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
  return ch;
}

其它编译器,如GCC,则:

int __io_putchar(int ch)

提示:这只是针对printf输出,最简单的一种方式。如果想要输入,重定义fgetc函数即可。

4实例代码

为方便大家理解,提供源码工程下载,参考代码:

STM32F103(SPL)_UART

STM32F103(HAL)_UART

百度网盘:

https://pan.baidu.com/s/1aYBuHtOgtLqLvj6SsMYlQA

(提取码:nbd3)

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部