访问电脑版页面

导航:老古开发网手机版STM32单片机STM32单片机的USART

基于STM32的printf串口数据输出

导读:
关键字:
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 等多种方式重映流函数输出端口

来源:网络整理   作者:工程师飞燕  2018/6/21 7:51:00
栏目: [ STM32单片机的USART]

相关阅读

STM32 USART串口DMA接收和发送模式

如何采用STM32单片机串口接收数据

STM32F407的UART串口初始化

STM32单片机串口通讯故障排除处理过程

STM32f103 双串口配置和中断

STM32F4 USART配置

STM32单片机串口的定义及应用方法

基于STM32单片机发送字符串的函数

STM32单片机串口波特率的计算方法解析

STM32单片机UART发送配置的步骤及方法

STM32单片机重映射USART设计

如何利用STM32单片机串口发送字符串

如何在STM32串口通信程序中使用printf发送数据

基于STM32单片机的串口使用解析

什么是串口通信?基于STM32的printf打印输出

STM32单片机的Usart2串口的调试方法

基于STM32实现串口的两个分案解析

基于STM32的Uart2串口问题

基于STM32的串口DMA发送

STM32单片机串口DMA解析