打印
[STM32F1]

IAR使用标准库函数中的printf

[复制链接]
449|32
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bestwell|  楼主 | 2023-3-31 07:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
IAR 中 printf() 会默认输出到 Terminal I/O 窗口中。Terminal I/O 的使用方法是,在 Debug 模式下,点击“View-Terminal I/O”。

但是,我们也可以自定义 printf() 函数,让其输出到 UART 或 LCD。
为了输出到 UART 等其他设备中,我们需要做两件“大事”。
1.修改工程配置参数;
2.编写移植代码。


1.修改工程配置参数
要将 printf() 输出到其他设备中,需要在工程配置中将 "General Operations-Library Configuration-Library" 设置为 "Full DLIB",否则无法编译通过。再将 "General Operations-Library Options-Printf formatter" 设置为 "Full" 否则堆栈会溢出。

2.编写移植代码
只要在需要调用 printf() 的程序中包含类似下列代码即可:

#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif

PUTCHAR_PROTOTYPE
{
    /**
     * 自定义代码,示例如下:
     */
    USART_SendData(USART1, (u8) ch);
    while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET)
    {
    }
    /**
     * 自定义代码结束
     */
    return ch;
}

以上代码会根据编译环境选择合适的函数名。别忘记在使用其他设备进行标准格式化输出之前,先对该设备进行初始化。从其他设备读入字符数据所用的 scanf() 的配置方式与 printf() 类似。参考 IAR 的 stdio.h 文件,我们可以对其他 标准 IO 函数 进行自定义配置。

使用特权

评论回复
沙发
uytyu| | 2023-4-2 16:51 | 只看该作者
rintf函数用于将参数输出到标准输出,在IAR中使用printf函数需要先引入stdio.h头文件

使用特权

评论回复
板凳
lihuami| | 2023-4-2 22:46 | 只看该作者
在代码中需要调用printf函数的地方直接使用printf即可,就像使用其他函数一样。

使用特权

评论回复
地板
benjaminka| | 2023-4-4 14:17 | 只看该作者
iar中怎么设置使用printf函数  

使用特权

评论回复
5
maqianqu| | 2023-4-4 14:23 | 只看该作者
STM32在IAR中如何使用printf函数

使用特权

评论回复
6
zerorobert| | 2023-4-4 14:53 | 只看该作者
重定向printf函数               

使用特权

评论回复
7
wangdezhi| | 2023-4-4 15:34 | 只看该作者
如何在IAR 上实现Printf 打印调试信息

使用特权

评论回复
8
phoenixwhite| | 2023-4-4 20:47 | 只看该作者
如何在IAR 上实现Printf 打印调试信息

使用特权

评论回复
9
sesefadou| | 2023-4-4 20:56 | 只看该作者
iar中怎么设置使用printf函数  

使用特权

评论回复
10
louliana| | 2023-4-4 21:58 | 只看该作者
重定向printf函数               

使用特权

评论回复
11
sdlls| | 2023-4-4 22:23 | 只看该作者
STM32在IAR中如何使用printf函数

使用特权

评论回复
12
Stahan| | 2023-4-4 22:44 | 只看该作者
重写putchar

使用特权

评论回复
13
zyf部长| | 2023-7-6 20:47 | 只看该作者
rintf函数用于将参数输出到标准输出,在IAR中使用printf函数需要先引入stdio.h头文件

使用特权

评论回复
14
xxmmi| | 2023-7-6 20:48 | 只看该作者

在代码中需要调用printf函数的地方直接使用printf即可,就像使用其他函数一样。

使用特权

评论回复
15
kangzj| | 2023-7-6 20:52 | 只看该作者
iar中怎么设置使用printf函数  

使用特权

评论回复
16
lium| | 2023-7-6 20:52 | 只看该作者
STM32在IAR中如何使用printf函数

使用特权

评论回复
17
lium| | 2023-7-6 20:53 | 只看该作者
重定向printf函数               

使用特权

评论回复
18
guoyt| | 2023-7-6 20:55 | 只看该作者
如何在IAR 上实现Printf 打印调试信息

使用特权

评论回复
19
hanwe| | 2023-7-6 20:57 | 只看该作者

iar中怎么设置使用printf函数  

使用特权

评论回复
20
yufe| | 2023-7-6 20:59 | 只看该作者
重定向printf函数               

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

1399

帖子

1

粉丝