3130|1

17

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

Z-Stack协议栈串口打印乱码问题的可能性及解决办法 [复制链接]

在通过串口打印的时候,经常出现乱码现象,分析可能的原因
​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' 截断,貌似没遇到过什么大问题。  详情 回复 发表于 2014-9-6 06:43
点赞 关注
 

回复
举报

1560

帖子

24

TA的资源

五彩晶圆(初级)

沙发
 
谢谢楼主的分享,前两点我也知道大概。第三点不太清楚,不过我习惯性的在字符串结尾加'\0' 截断,貌似没遇到过什么大问题。
此帖出自无线连接论坛
个人签名这孩子,成熟的象征,理智的典范。
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表