- 1
- 2
- 3
- 4
- 5
固件printf重定向乱码问题
资料介绍
固件里的"printf"重定向:为什么有时候输出乱码 一、printf重定向是嵌入式常用技巧 嵌入式里,printf默认输出到串口(UART),靠"重定向"实现——把printf的输出重定向到串口发送函数(fputc)。很多人重定向后,发现输出乱码、丢字、卡顿,不知道问题出在哪。 这篇讲printf重定向的原理和常见问题。 二、printf重定向怎么做 实现fputc(或__io_putchar):把单个字符送到串口 printf内部调用fputc,把格式化好的字符一个个送到串口 所以重定向的关键是"fputc正确地把字符发到串口" cint fputc(int ch, FILE *f) { // 把ch通过串口发出去(等串口发送完成) return ch;} 三、printf重定向的常见问题 3.1 波特率不匹配 printf重定向到串口,串口波特率要跟上位机(串口助手)一致。波特率不匹配,输出乱码。 排查:确认串口波特率设置和上位机一致。 3.2 重定向函数没写好 fputc如果没正确等待串口发送完成(发一个字符没等发完就返回),字符可能丢失、乱码。 排查:fputc里要等串口发送完成(发送寄存器空、发送完成标志)。 3.3 阻塞(等串口发完) printf输出量大、串口慢(波特率低),fputc要等串口发完,阻塞主流程。printf多了,系统卡顿。 排查:控制printf输出量(别刷屏)、或改成非阻塞(用缓冲/DMA,但复杂)。 3.4 中断里用printf 中断里调用printf,阻塞(等串口发)+ 可能重入问题(前面聊过),造成中断响应慢、输出乱。 排查:别在中断里printf(置标志,主循环再输出)。 3.5 缓冲区溢出 printf格式化到内部缓冲区,如果格式串和参数不匹配、或输出太长,可能越界。
部分文件列表
| 文件名 | 大小 |
| 固件printf重定向乱码问题.docx | 37K |
最新上传
-
21ic小能手 打赏3.00元 2天前
资料:小米MIX3电路图
-
21ic小能手 打赏10.00元 2天前
-
21ic小能手 打赏5.00元 2天前
-
江岚 打赏100.00元 3天前
用户:潇潇江南
-
他山之石可攻玉 打赏50.00元 3天前
用户:烟雨
-
21ic下载 打赏1.00元 3天前
用户:王小琪
-
yahuang001 打赏3.00元 3天前
-
yahuang001 打赏1.00元 3天前
-
zhongshaoxiong 打赏3.00元 3天前
-
他山之石可攻玉 打赏60.00元 3天前
用户:烟雨
-
江岚 打赏210.00元 3天前
用户:潇潇江南
-
江岚 打赏100.00元 3天前
-
21ic下载 打赏310.00元 3天前
用户:gsy幸运
-
21ic下载 打赏310.00元 3天前
用户:zhengdai
-
21ic下载 打赏310.00元 3天前
用户:江岚
-
21ic下载 打赏210.00元 3天前
用户:潇潇江南
-
21ic下载 打赏60.00元 3天前
用户:他山之石可攻玉
-
21ic下载 打赏60.00元 3天前
用户:烟雨
-
21ic下载 打赏60.00元 3天前
用户:w178191520
-
21ic下载 打赏60.00元 3天前
用户:w993263495
-
21ic下载 打赏110.00元 3天前
用户:xzxbybd
-
21ic下载 打赏60.00元 3天前
用户:zq_1943
-
21ic下载 打赏20.00元 3天前
用户:kk1957135547
-
21ic下载 打赏20.00元 3天前
用户:sun2152
-
21ic下载 打赏20.00元 3天前
用户:铁蛋锅
-
21ic下载 打赏20.00元 3天前
用户:xuzhen1
-
21ic下载 打赏20.00元 3天前
用户:w1966891335
-
21ic下载 打赏35.00元 3天前
用户:有理想666
-
21ic下载 打赏15.00元 3天前
用户:nuaanuaa111
-
21ic下载 打赏20.00元 3天前
用户:liqiang9090
-
21ic下载 打赏15.00元 3天前
用户:ningmengge
-
21ic下载 打赏10.00元 3天前
用户:mulanhk
-
21ic下载 打赏5.00元 3天前
用户:asys
-
21ic下载 打赏10.00元 3天前
用户:舞蹈荀彧
-
21ic小能手 打赏5.00元 3天前
资料:磁编码器开源方案
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
江岚 打赏20.00元 3天前
-
江岚 打赏50.00元 3天前
-
江岚 打赏20.00元 3天前




全部评论(0)