printf移植到底是干什么的?
stm32吧
全部回复
仅看楼主
level 4
2f50398 楼主
我在跟着江协学stm 32,我学到了usart串口通信。内容就是up用stm 32向电脑发送数据。然后在后半段讲printf移植,我不明白这个移植是干什么的,有什么用,在up写完移植的代码后,电脑的串口助手的数据和之前也没什么区别啊?然后我问ai也没问明白
2026年03月21日 10点03分 1
level 1
重定向吧,搞完后printf就是直接向串口打印数据了,你也可以不重定向自己写函数
2026年03月21日 13点03分 2
🙏
2026年03月22日 10点03分
level 8
就是原来你要往串口写,得要自己一个字节一个字节往寄存器搬,而且要自己计算你要打印的字符串
例如你要显示时间+温度+湿度+气压,要上下对齐,那么时间里面要不要补0,还是后面多个空格,温度前面负号会不会影响,气压100kPa和99kPa,是右对齐还是左对齐这些乱七八糟的,都得要你自己算自己拼接字符串
有printf之后,可以利用格式控制字符串来控制这些,stdio(std是standard标准,io是input/output输入输出)里的程序代码就会根据你给出的格式控制字符串自动计算空格数量、零的数量等等
printf=print+f,这里f就是format格式
关于什么是格式控制字符串,具体有哪些可以控制的格式,请参阅cppreference或类似网站,下附cppreference中文镜像站(官方站点在维护,目前只提供英文版本)的部分截图
2026年03月21日 17点03分 3
好厉害ヾ(Ő∀Ő๑)ノ,感谢大佬
2026年03月22日 10点03分
@2f50398 如果不理解可以大胆再问,或者自己试着写代码试试
2026年03月22日 17点03分
@Riachard_Zhang 好的,谢谢
2026年03月25日 09点03分
level 3
我理解的:就是测试的习惯问题。printf可以打印数字、字符串,还支持打印多个参数。不然你每次就只能showString、showNum。多个参数的时候,还要多次调。
2026年03月25日 09点03分 4
可以接着看后续的pid教程、平衡车教程。调试kp、ki、kd...6、7个参数,OLED屏幕不够,就用sprintf打印到手机小程序上。要是你用showString、showNum,得写6、7行。
2026年03月25日 09点03分
1