Arduino使用串口屏的坑
UsartGPU串口屏是最常用的串口屏,最近在应用过程中遇到问题,串口语句在GPUMake中显示正常,但移到Arduino后就始终无反应。经过长时间排查,直到查阅了厂家网站www.ai-diy.cn上的文档才发现问题所在,这几个坑真不容易注意到,下次应用一定要注意:
- 要在串口屏上显示汉字,不能在Arduino IDE中直接引用汉字,因其编码格式为GB2312,而串口屏需要ANSI格式,解决办法是在记事本里以ANSI格式新建一个hz.c,里面写一条语句 const char hz[][32]={"XXX","XXX","XXX",......},每个字或每个词、短语作为数组元素添加其中,注意数组的长度要因放入的汉字多少而定,一个汉字需要两个字节。将其放到ino文件的相同目录中,在编写Arduino程序时将其纳入:#include "hz.c",在发送时用hz[X]引用相应汉字。
- 发送一堆串口命令时,一定要在最后一条串口数据发送时加上换行符:Serial.println("XXX");否则串口会认为命令还没有接收完毕,不会有任何动作。
- 如果屏上显示有稀奇古怪的问题,一定是在串口数据编码过程中出现了格式问题,比如少了一个),引用hz[X]时要在其前后加上'。