您的位置 首页 IOT

根据STM32的printf串口数据输出

基于STM32的printf串口数据输出-该方法适用于 STM32 ,实现了使用printf等标准C流函数输出数据的办法,极大的减少了输出 串口数据 时所需要做的数据处理。 实现原理 在C库中,printf()等输出流函数都是通过fputc()这个函数实现的,所以我们通过重映射的方式,修改这个函数的定义使它输出在STM32的寄存器中,便可以实现使用printf()函数在STM32串口上输出数据的功能。

该方法适用于STM32,完成了运用printf等规范C流函数输出数据的方法,极大的减少了输出串口数据时所需求做的数据处理。

完成原理

在C库中,printf()等输出流函数都是经过fputc()这个函数完成的,所以咱们经过重映射的方法,修正这个函数的界说使它输出在STM32的寄存器中,便能够完成运用printf()函数在STM32串口上输出数据的功用。

Keil环境 重映射

在STM32的Keil开发环境中,C的库函数有两种完成方法

运用规范的C函数库

便是咱们平常在PC Window平台上用的C库函数,此库的的长处在于完成的功用全面。可是因为这个库底子上是专为PC规划的,故而如果在嵌入式芯片中调用时将会使得工程文件变得非常巨大。

将下列代码参加工程,无需运用#include调用即可收效。

根据STM32的printf串口数据输出

运用MDK供给的 MicroLib

MicroLib is a highly-opTImized library for ARM-based embedded applicaTIons written in C. When compared to the standard C library included with the ARM Compiler toolchain, MicroLib provides significant code size advantages required for many embedded systems.

根据STM32的printf串口数据输出

底子便是说:Microlib 是缺省 C 库的备选库。 它旨在与需求装入到极少量内存中的深层嵌入式应用程序合作运用。 这些应用程序不在操作系统中运转。microlib 进行了高度优化以使代码变得很小。 它的功用比缺省 C 库少,而且底子不具备某些 ISO C 特性。 某些库函数的运转速度也比较慢,例如,memcpy()。

相同的将下列代码参加工程,并在Keil设置中勾选Use MicroLib

根据STM32的printf串口数据输出

根据STM32的printf串口数据输出

GCC环境 重映射

在GCC开源开发环境中,则能够调用nano_printf.c 等多种方法重映流函数输出端口

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/347521.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部