USART HMI 资料中心

http://www.tjc1688.com

站点工具


目录索引

Command disabled: revisions
6.指令集:7.串口通信

设备与串口屏通信协议

【章节索引】

一、串口数据解析模式之被动解析模式

二、串口数据解析模式之主动解析模式

三、串口屏串口发送数据


一、串口数据解析模式之被动解析模式

       在默认情况下屏接收设备发送数据完整格式为字符串指令加上3个16进制ff,如果屏接收到不完整或者错误指令将会返回数据。例如①1a ff ff ff 

②1c ff ff ff等;可通过ckcmd指令进行开启关闭返回数据。(在正常情况下建议先将屏幕报错原因找到解决了,再指令关闭返回数据)

      

       1.1 以文本控件显示为例

       单片机如何控制屏幕(文本控件)

1、在上位机工程新建一个文本控件,假设为t0,将程序下载到串口屏上,
       2、串口屏串口与单片机串口连接,两者波特率应一致,单片机RX接串口屏TX,单片机TX接串口屏RX。
       3、发送指令:单片机串口通过字符串模式发送t0.txt="六六六"
       4、发送结束符:单片机通过HEX模式发送0xff 0xff 0xff
       5、此时屏幕上的t0控件内的文字变为“六六六”
       

1.2 以数字控件显示为例

       单片机如何控制屏幕(数字控件)

       1、在上位机工程新建一个数字控件,假设为n0,将程序下载到串口屏上,
       2、串口屏串口与单片机串口连接,两者波特率应一致,单片机RX接串口屏TX,单片机TX接串口屏RX。
       3、发送指令:单片机串口通过字符串模式发送n0.val=666
       4、发送结束符:单片机通过HEX模式发送0xff 0xff 0xff

       5、此时屏幕上的n0控件内的文字变为“666”


      1.3 单片机发送变量到屏幕

       1.3.1 C语言为例

      在通常情况下单片机是很少发送一个常量给屏赋值的,大多数情况都是单片机赋值一个变量到屏幕上的。下面代码以C语言为例

      printf("n0.val=666"); 发送命令
      printf("\xff\xff\xff"); 发送结束符
      printf("n0.val=666\xff\xff\xff");
      printf("n0.val=%d\xff\xff\xff",MyData); 一次性发完命令和结束符
      printf("t0.txt=\"%d\"\xff\xff\xff",MyTxt); 一次性发完命令和结束符

     注:这里发送16进制是用\xff,若不明白"\"使用法,自行百度"c语言转义字符"

      

      1.3.2 anduino单片机为例

      Serial.print("t0.txt=\"你好\""); 发送字符串命令

      Serial.write(hexEND,3); 发送3个16进制ff结束符

      此时屏幕t0文本控件会显示"你好"。 

      Serial.print("n0.val=666"); 发送字符串命令

      Serial.write(hexEND,3); 发送3个16进制ff结束符

      此时屏幕n0数字控件会显示"666"。

      Serial.print("n0.val=”+part); 发送字符串命令

      Serial.write(hexEND,3); 发送3个16进制ff结束符


      1.4 串口调试助手控制屏幕

      选择串口号(选择你电脑连接屏使用的串口号)

      ②选择与串口屏相同的波特率。

      ③数据位8,1停止位,无校验(通用默认配置)。

      ④参数设置好后,点击打开串口。

串口助手截图操作说明
图片1.png

① 选择串口号(选择你电脑连接屏使用的串口号)

② 设置波特率

图片3.png图片2.png

③ 输入字符串指令

④ 输入16进制结束符



二、串口数据解析模式之主动解析模式

      在默认情况下屏接收设备发送数据完整格式为字符串指令加上3个16进制ff,如果将屏设置为recmod=1,那么屏将进入主动解析模式,即自定义通信协议。

具体使用详情,点击查看

      注 : 1.在主动解析模式下,只有定时器控件能够解析数据,定时器最快解析数据时间为50ms

            2.在主动解析模式下,所有串口指令都不会执行,都会存放串口缓冲区中,等待您主动去读取

            3.常规情况下,建议使用的是屏默认通信协议,如果设备实在是没有按照屏通信协议格式,再进行主动解析模式


三、串口屏串口发送数据

      串口屏串口发送数据是使用get prints printh指令。

      例:串口需要发送包头为01 02 中间变量为n0.val,n1.val 包尾为0d 0a。

      则在需要发送的地方事件下写 :

      printh 01 02
     prints n0.val,0
     prints n1.val,0
     printh 0d 0a

      注 :  1.同一个事件里分行写发送指令,实质是同一行发送的

             2.发送变量只能使用prints,get指令,发送16进制数据只能使用printh指令

             3.屏幕可通过printh指令,配合prints指令实现任何通信协议



6.指令集/7.串口通信.txt · 最后更改: 2021/04/27 11:47 由 tjcqiu        浏览次数:795577/263832943(本页/全站)