笔记
同事从迪文屏接口, 焊接出一个DB9公头. 因为手头不好找DB9母头, 就用232转485 + 485转232 + 232转USB上电脑测试. 怎么测试都不通, 也将同事焊接的232 TX/RX对调过. 不行.
最后测试时, 直接找了一条双母头的D9连接线, 这样就改成了 DB9公头接口 + 双母头DB9转接线 + 232转USB上电脑. 这回好使.
我不确定那条双母头的2,3是否有交叉. 反正通讯不行时, 就将同事焊接出的DB9公头的2,3调一下测试.
记录一下用串口助手和串口屏通讯的发包的组包
配置文件
屏的配置文件中, 要将触控按键自动上传选上. 最终用的时候, 用的是厂家技术给的配置文件, 用BC4比对过, 2进制上有区别. 但是用DGUS_V7622的修改配置的工具打开后, 都能看到有"触控数据自动上传" 串口屏的对外通讯的串口波特率也是在CFG文件中规定.
触控元素
可以返回事件(“数据自动上传”)的UI元素是"按键返回" 烧录好后, 每按一下触控按键, 串口就会收到回包.
5A A5 06 83 10 0A 01 20 00
包分析 5A A5 帧头 06 后面有6个字节的数据 83 读数据 10 0A 触控事件对应的变量地址是 0x100A 01 // 数据为1个WRORD(2 bytes) 20 00 // 键值是0x2000
向串口屏内存写数据(整数2字节)
假设变量地址是0x1000, 数据长度是2 bytes. 发包 => 5AA5 05 82 1000 00 63 发包分析 5AA5 固定帧头 05 本包带的数据是5bytes 82 帧功能 = 写内存变量 1000 变量地址= 0x1000 00 63 变量值, 长度2字节, 值 = 99
向串口屏内存写数据(浮点数4字节)
假设变量地址是0x1006, 数据长度是浮点数4bytes. 发包 => 5AA5 07 82 1006 3F 9E 06 10
发包分析 5AA5 帧头 07 此包带的数据为7 bytes 82 帧功能 = 写数据 1006 变量地址 = 0x1006 3F 9E 06 10 => 这个是float(4字节)在内存中的内存镜像, 不是大端就是小端,试一下
串口屏问答的回包
如果是写数据到串口屏, 串口屏会有回包.
5A A5 03 82 4F 4B
回包分析: 5A A5 固定帧头 03 后面带的数据为3字节 82 这个回包回答的是0x82(写数据)发包. 4F 4B 固定帧尾
|