重要

在usartGPU中,显示需要执行时间,且缓存区1K 只有一份,因此一个重要的编程要求就是在发送命令后需要延时,而在sHMIctrl中,这个要求依然存在,但是延时时间会明显减少,主要原因如下:

因此:\r\n(0d 0a)之后务必要适度延时,最好不要小于100ms

常见问题:

1、避免 "语句1;\r\n语句2;\r\n语句3;\r\n"这样发送

因为这样\r\n之后没有延时;应该修改为 "语句1;语句2;语句3;\r\n",然后适度延时

2、避免使用“\r\n\r\n"

这样会使第二个buf存储为空,从而导致第一个buf被覆盖

3、数据绑定语句执行极快,但未必收到\r\n后就立即执行

系统受到\r\n之后,只是设置了有需要执行命令的标志,如果此时正在执行显示刷新,则需要等待显示刷新之后才会执行CMD传输来的语句,这样就导致了同样的语句可能从发送\r\n之后的执行时间不一致,因此延时的值应该给予充分时间;

4、请理解C语言的转义和ASC码的基本概念

我们要求的是语句结束标志是回车换行,也就是ASC码的0d 0a ,在C语言中引号内使用"\r\n"来描述,请正确理解C语言\这个转义字符,切勿理解为:\r\n是4个字符