[N32L4xx] GCC环境用printf打印

[复制链接]
1522|10
 楼主| 沧桑小草 发表于 2022-8-29 20:29 | 显示全部楼层 |阅读模式
一般我们在KEIL中用printf实现串口打印时,只要包含stdio.h头文件,然后重新实现fputc函数即可,如附图一:

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


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

附图1

附图1

附图2

附图2
Afanx 发表于 2022-8-30 18:44 | 显示全部楼层
学习了
everyrobin 发表于 2022-9-3 17:12 | 显示全部楼层
printf()函数是格式化输出函数
uiint 发表于 2022-9-3 18:22 | 显示全部楼层
如何使用gcc跟踪函数调用
elsaflower 发表于 2022-9-3 19:20 | 显示全部楼层
gcc printf(“中文”)为什么出来会是乱码
touser 发表于 2022-9-3 20:19 | 显示全部楼层
链接的是动态库 libc.so.6   
yeates333 发表于 2022-10-5 17:03 | 显示全部楼层
arm-gcc 可以调用printf吗  
weifeng90 发表于 2022-10-5 17:05 来自手机 | 显示全部楼层
有些IDE不能兼容
robincotton 发表于 2022-10-5 17:29 | 显示全部楼层
找出bug位置,一般使用printf()  
timfordlare 发表于 2022-10-5 18:15 | 显示全部楼层
用printf输入中文 gcc后输出中文乱码
bestwell 发表于 2022-10-5 18:44 | 显示全部楼层
如何使用GCC生成动态库和静态库
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

34

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部