zzuzph 发表于 2018-5-2 21:48:51

printf函数打印乱码该怎么解决

我用的STM32F107VC芯片,调用printf打印测距信息
printf重定向

要打印的信息

时钟使能和GPIO配置等


这一部分有点疑惑,尤其是HSEStartUpStatus != ERROR,我看了网上一些教程改成SUCCES,结果测距功能就没法实现,不知道为什么
管脚配置应该没问题


求大神帮忙看看

toofree 发表于 2018-5-2 22:26:09

本帖最后由 toofree 于 2018-5-2 22:27 编辑

用示波器卡一下,打印乱码,一般是波特率不对。
初始化串口的波特率设置,又跟系统时钟有关系,那么有可能是你的系统时钟不对。



feixiang20 发表于 2018-5-2 22:28:48

乱码是因为语句没设置结束符么,至于出错是不是程序里调用了一些标准C的函数呢

zcl201207 发表于 2018-5-2 23:07:33

强制转换一下打印变量试试

wenyangzeng 发表于 2018-5-3 07:16:06

本帖最后由 wenyangzeng 于 2018-5-3 07:18 编辑

波特率有误,应该检查系统时钟配置。本贴供你参考:
https://www.stmcu.org.cn/module/forum/thread-614091-1-1.html

wudianjun2001 发表于 2018-5-3 08:28:52

要不是波特率的问题,要么是显示字符的问题,用hex显示看看和发的数据对比下是不是一样,hex显示不会乱的,字符串显示方式有些特殊字符会显示乱

与龙共舞 发表于 2018-5-3 14:13:57

查查晶振 HSE_VALUE
8M12M
https://www.stmcu.org.cn/module/forum/thread-615572-1-1.html

与龙共舞 发表于 2018-5-3 14:14:52

晶振

jjbboox 发表于 2018-5-3 16:41:12

可能的几种情况,楼主自己检查一下看看。

1.晶振频率不对。
2.和上位机的串口速率不一致。
3.使用了蓝牙等透传模块实现串口通讯时,上位机,单片机和蓝牙模块的串口速率必须3者一致。
4.代码文件的字符集不对,可能你的C源代码文件是UTF-8的或者是非ANSI文本。

mjjtim 发表于 2018-5-5 15:28:19

检查波特率看下?或者晶振坏了?
页: [1] 2
查看完整版本: printf函数打印乱码该怎么解决