printf函数打印乱码该怎么解决
我用的STM32F107VC芯片,调用printf打印测距信息printf重定向
要打印的信息
时钟使能和GPIO配置等
这一部分有点疑惑,尤其是HSEStartUpStatus != ERROR,我看了网上一些教程改成SUCCES,结果测距功能就没法实现,不知道为什么
管脚配置应该没问题
求大神帮忙看看
本帖最后由 toofree 于 2018-5-2 22:27 编辑
用示波器卡一下,打印乱码,一般是波特率不对。
初始化串口的波特率设置,又跟系统时钟有关系,那么有可能是你的系统时钟不对。
乱码是因为语句没设置结束符么,至于出错是不是程序里调用了一些标准C的函数呢 强制转换一下打印变量试试 本帖最后由 wenyangzeng 于 2018-5-3 07:18 编辑
波特率有误,应该检查系统时钟配置。本贴供你参考:
https://www.stmcu.org.cn/module/forum/thread-614091-1-1.html
要不是波特率的问题,要么是显示字符的问题,用hex显示看看和发的数据对比下是不是一样,hex显示不会乱的,字符串显示方式有些特殊字符会显示乱 查查晶振 HSE_VALUE
8M12M
https://www.stmcu.org.cn/module/forum/thread-615572-1-1.html 晶振 可能的几种情况,楼主自己检查一下看看。
1.晶振频率不对。
2.和上位机的串口速率不一致。
3.使用了蓝牙等透传模块实现串口通讯时,上位机,单片机和蓝牙模块的串口速率必须3者一致。
4.代码文件的字符集不对,可能你的C源代码文件是UTF-8的或者是非ANSI文本。
检查波特率看下?或者晶振坏了?
页:
[1]
2