STM32F103程序串口调用printf打印数据

论坛 期权论坛 脚本     
匿名技术用户   2021-1-6 07:39   36   0

程序开发过程中调试必不可少,一种简单直接的调试方式是使用串口发送数据,并使用串口助手进行观测。以前使用MSP430做项目时也同样使用printf打印数据,所以现在想在stm32 上实现。

通常串口发送单字节库函数:USART_SendData(USART1, (uint8_t) ch);对显示小数等数据比较复杂,如果能够直接使用C语言 stdio.h中的printf直接输出就可以省去大部分格式输出转化时间。下面将介绍如何调用printf打印串口数据。

建立USART.C和USART.H两个文件,分别编写串口设置程序与头文件

USART.C中需要添加如下代码:

int fputc(int ch, FILE *f)
{
 /* e.g.给USART写一个字符 */
 USART_SendData(USART1, (uint8_t) ch);

 /* 循环直到发送完成 */
 while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);

 return ch;
}

对printf进行重定向;

USART.H中需要添加如下代码:

添加stdio.h头文件,其次,声明int fputc(int ch, FILE *f);


最后一步,在设置中勾选Use MicroLIB选项;


完成以上步骤后,便可在程序中直接调用printf打印串口数据。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP