打印
[N32L4xx]

GCC环境用printf打印

[复制链接]
467|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一般我们在KEIL中用printf实现串口打印时,只要包含stdio.h头文件,然后重新实现fputc函数即可,如附图一:

但在GCC环境中,我们需要实现的底层函数就不是fputc函数了,而是_write函数,如附图二:


需要注意的是:
        printf后面添加 \n或者在printf之后使用fflush(stdout),来立即刷新输出流。
        否则printf不会输出任何数据,而且会被后来的正确发送的printf数据覆盖。
        这是因为printf的数据流在扫描到 \n之前都会被保存在缓存中,直到 \n出现或是fflush(stdout)强制刷新才会输出数据。

gcc_printf.png (233.53 KB )

附图2

附图2

keil.png (176.58 KB )

附图1

附图1

使用特权

评论回复
沙发
Afanx| | 2022-8-30 18:44 | 只看该作者
学习了

使用特权

评论回复
板凳
everyrobin| | 2022-9-3 17:12 | 只看该作者
printf()函数是格式化输出函数

使用特权

评论回复
地板
uiint| | 2022-9-3 18:22 | 只看该作者
如何使用gcc跟踪函数调用

使用特权

评论回复
5
elsaflower| | 2022-9-3 19:20 | 只看该作者
gcc printf(“中文”)为什么出来会是乱码

使用特权

评论回复
6
touser| | 2022-9-3 20:19 | 只看该作者
链接的是动态库 libc.so.6   

使用特权

评论回复
7
yeates333| | 2022-10-5 17:03 | 只看该作者
arm-gcc 可以调用printf吗  

使用特权

评论回复
8
weifeng90| | 2022-10-5 17:05 | 只看该作者
有些IDE不能兼容

使用特权

评论回复
9
robincotton| | 2022-10-5 17:29 | 只看该作者
找出bug位置,一般使用printf()  

使用特权

评论回复
10
timfordlare| | 2022-10-5 18:15 | 只看该作者
用printf输入中文 gcc后输出中文乱码

使用特权

评论回复
11
bestwell| | 2022-10-5 18:44 | 只看该作者
如何使用GCC生成动态库和静态库

使用特权

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

本版积分规则

13

主题

34

帖子

2

粉丝