STM32
直播中

世态薄凉

8年用户 1173经验值
私信 关注
[问答]

如何调用printf函数直接去打印串口数据呢

如何调用printf函数直接去打印串口数据呢?要经过哪几个步骤?

回帖(1)

陈畅妮

2021-12-2 10:07:07
程序开发过程中调试必不可少,一种简单直接的调试方式是使用串口发送数据,并使用串口助手进行观测。以前使用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打印串口数据。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分