打印
[技术问答]

请问使用printf应该注意些什么?

[复制链接]
529|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cr315|  楼主 | 2023-3-20 09:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
芯片:m051

开发环境:KEIL MDK 4.72

BSP:09年的老版本

包含了<stdio.h>来调用printf函数,程序执行到printf语句后就死在那还需要配置什么吗?

使用特权

评论回复
沙发
jcky001| | 2023-3-21 09:00 | 只看该作者
1)配置好UART0
2)把retarget.c加到工程里去。
3)如果用的是最新的V3版本的BSP,接下来只要在retarget.c在这个文件的开头加一个定义:#define DEBUG_ENABLE_SEMIHOST 就可以了。

使用特权

评论回复
板凳
jasontu| | 2023-3-21 10:56 | 只看该作者
串口没有初始化吧。
拿标准的bsp sample跑,就可以打印了吧

使用特权

评论回复
地板
V853| | 2023-3-21 15:56 | 只看该作者
有没有映射成功,没成功可能会让程序跑飞。

使用特权

评论回复
5
Pretext| | 2023-3-21 15:57 | 只看该作者
不能被阻塞呗,打印的时候优先级要最高才行。

使用特权

评论回复
6
天天向善| | 2023-3-21 15:57 | 只看该作者
调试看一下,死在哪了,感觉没配置好。

使用特权

评论回复
7
uiint| | 2023-4-16 22:51 | 只看该作者
printf要求指定的格式化字符串与传递给它的参数类型匹配,否则可能会导致不可预期的结果或程序崩溃。

使用特权

评论回复
8
mickit| | 2023-4-18 11:08 | 只看该作者
在单片机上使用printf函数需要用到串口通信模块

使用特权

评论回复
9
kkzz| | 2023-4-18 12:32 | 只看该作者
可以使用snprintf函数来限制输出字符数量。

使用特权

评论回复
10
sdlls| | 2023-4-18 13:14 | 只看该作者
应该尽量避免使用过于复杂的格式化字符串,保证代码简洁易读,便于维护。

使用特权

评论回复
11
cashrwood| | 2023-4-18 13:58 | 只看该作者
如果在多线程环境下使用printf,可能会存在并发问题,导致输出内容错乱。可以使用互斥锁来解决这个问题。

使用特权

评论回复
12
pmp| | 2023-4-18 15:34 | 只看该作者
为了避免输出缓冲区中的字符丢失,应该在使用完printf函数后显式清空输出缓冲区。

使用特权

评论回复
13
kmzuaz| | 2023-4-18 16:03 | 只看该作者
printf输出的字符需要通过串口发送给外部设备才能被查看。

使用特权

评论回复
14
wilhelmina2| | 2023-4-18 18:23 | 只看该作者
在嵌入式系统中使用printf时,应该根据实际情况合理控制其使用频率,避免对整个系统的性能产生过大的影响。

使用特权

评论回复
15
mickit| | 2023-4-18 19:48 | 只看该作者
printf输出的字符数不能超过缓冲区大小,否则可能会导致内存破坏或程序崩溃。

使用特权

评论回复
16
Jacquetry| | 2023-4-18 23:06 | 只看该作者
控制使用频率

使用特权

评论回复
17
Annie556| | 2023-4-26 11:59 | 只看该作者
如果执行printf就死机,估计是你没开keil的microUSB吧

使用特权

评论回复
18
B1lanche| | 2023-4-26 13:04 | 只看该作者
你看看你的重定义呗,看看是否有问题

使用特权

评论回复
19
Allison8859| | 2023-4-26 14:08 | 只看该作者
这个太简单了吧,随便找个例程一抄就好了啊

使用特权

评论回复
20
Charlotte夏| | 2023-4-26 15:13 | 只看该作者
话说,这个printf官方没有例程使用吗?

使用特权

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

本版积分规则

1327

主题

3834

帖子

0

粉丝