微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > Z-Stack协议栈串口打印乱码问题的可能性及解决办法

Z-Stack协议栈串口打印乱码问题的可能性及解决办法

时间:10-02 整理:3721RD 点击:
在通过串口打印的时候,经常出现乱码现象,分析可能的原因
​1.配置有误
这个是最低级,最不应该发生的错误了,如果你调试了半天,结果发现是自己波特率设置或者是其他串口相关配置不正确,是不是有种想抽自己几个耳光的冲动。

2.串口助手的问题
这是可能发生的。我在用一个串口助手调试了大半天后,发现怎么调试都是乱码,无奈抱着试试看的心理换了一个串口助手,奇迹出现了,竟然不再乱码了

3.打印的数据类型不全是char类型的
基本出现乱码的情况都是此种情况。一般直接打印字符串的话,不会出现乱码,但我们打印的经常并不是字符串。最典型的例子就是,我们在接收到信息后,想打印出来,然后直接调用 HalUARTWrite(HAL_UART_PORT_0,pData,len);
其中pData是传递过来的指针。
如果pData是字符串形式的,自然没有问题,但事实是pData大多情况下并不是字符串形式的,直接打印自然就乱码了。
解决办法就是通过加字符‘0’转换成ASII码形式。
pData = pData + '0';

4.屏蔽以MT开头的预编译宏
这一点我并没有验证,是参照别人所说,这里只是提供一种可能性
http://blog.csdn.net/u014256685/article/details/22403681

​以上即是我在多次碰到串口打印乱码后,总结出来的经验,仅供参考,如有不足或不当的地方,还望大家补充。

谢谢楼主的分享,前两点我也知道大概。第三点不太清楚,不过我习惯性的在字符串结尾加'\0' 截断,貌似没遇到过什么大问题。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top