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