当前位置: 代码迷 >> 综合 >> 软方串口屏RK6043A试用--------modbus Rtu+485开发
  详细解决方案

软方串口屏RK6043A试用--------modbus Rtu+485开发

热度:118   发布时间:2023-10-12 07:43:15.0

说明

最近有个车载监控的项目用到了这块串口屏,目前正在摸索中,so写一个记录说明。

手中的这块屏是4.3寸触摸屏,看背后接口应该是支持232和485通讯的。目前打算是使用modbus RTU+485的模式。

可以到官网下载串口屏的软件和使用手册,需要安装一个HMI-TFT仿真软件,大部分的工作都是在这个软件上进行串口屏界面的设置,进行一些控件的拖取,协议命令的设置。另外也可以下载示例参考。

新建工程并下载到串口屏运行

1、准备界面的背景图片,示例是png格式,所以这里本人用了windows自带的画图软件,4.3寸参考示例图片全屏规格是480*272。

软方串口屏RK6043A试用--------modbus Rtu+485开发

2、打开HMI-TFT软件,点击新建工程,再新建画面。

软方串口屏RK6043A试用--------modbus Rtu+485开发


3、设置启动画面和波特率。

    注:(这步在第一次编译的时候忘了,导致编译工程出现error)

软方串口屏RK6043A试用--------modbus Rtu+485开发

4、设置画面的背景,再拖动四个文本控件,并进行一些控件参数的设置。主要包括文本字体的大小,颜色,对齐方式,以及文本框是否为输入模式,若是输入模式,还需要选择键盘的类型。

软方串口屏RK6043A试用--------modbus Rtu+485开发

拖动文本控件到背景图片

软方串口屏RK6043A试用--------modbus Rtu+485开发

文本控件属性的设置内容

软方串口屏RK6043A试用--------modbus Rtu+485开发

5、因为要用到modbus协议,需进行协议设置(菜单栏工具-->协议设置),添加变量定义和逻辑处理。将控件与变量进行绑定,设置好后,保存并编译。

下图需注意的是,脚本需要启用,默认是禁用的。协议类型选择modbus主站,代表的是串口屏为主设备。另外之后三个时间参数单位是ms。为了方便与串口调试助手通信手动回复协议,这里将应答超时调大了些。实际和MCU通信时,可以调小。

软方串口屏RK6043A试用--------modbus Rtu+485开发

下图就是添加变量和控件绑定,变量设置中,变量类型中有许多选项,这里选择了保持寄存器(对应modbus功能码0x03);从机地址这里填写的是十进制(22),换到协议中传输的是十六进制(0x16),变量地址可以随意定义,从设备能根据这个地址回复即可。

软方串口屏RK6043A试用--------modbus Rtu+485开发

下图控件绑定,就是将某画面中的控件与上面定义的变量进行绑定。这样当收到从设备参数,变量更改时,控件显示也会更改;当控件显示变化时,变量也会变化,再将变化参数传到从设备。

软方串口屏RK6043A试用--------modbus Rtu+485开发

当操作完毕后,需要保存和编译

软方串口屏RK6043A试用--------modbus Rtu+485开发

6、编译整个工程(软件左上方菜单栏中有编译选项)

7、生成sd卡资源包,将生成的文件全部拷贝到sd卡中,再插入串口屏,重新上电,等待更新即可

选择工具--->量产向导,点击生成SD卡资源包

软方串口屏RK6043A试用--------modbus Rtu+485开发

软方串口屏RK6043A试用--------modbus Rtu+485开发

将拷贝的SD卡重新插入串口屏,重新上电。

软方串口屏RK6043A试用--------modbus Rtu+485开发

软方串口屏RK6043A试用--------modbus Rtu+485开发

   :这里遇到两个问题。一是最初直接将生成的文件夹拷贝到sd卡后,串口屏更新不了界面,后来才发现是将所有文件拷贝到sd卡根目录才能正常更新。二是在生成sd卡资源包时,将四个选项全部选择了,结果串口屏重新上电后,屏幕卡在check部分,出现error。只需勾上面两个就可以了——下载图片资源和下载工程设置。

串口调试助手<----modbus---->串口屏

目标:运用modbus RTU协议,通过串口调试助手更改屏幕上的某个参数

说明:首先串口屏是作为modbus主站的角色,需要更新界面中控件的显示参数, 它会不断的向从设备发送轮询命令,从设备 收到后会回复相关参数,串口屏成功接收后就会显示出参数。这里要先分析出主站发送的命令构造原理,才能便于以后串口屏与其他MCU通信。

1、modbus RTU格式    可以上网找下详细的协议格式,这里只用到了功能码0x03,截取了下方的表格(引用1)

软方串口屏RK6043A试用--------modbus Rtu+485开发

软方串口屏RK6043A试用--------modbus Rtu+485开发

2、实验通信

将串口屏与电脑相连,通过485转usb线相连。打开串口调试助手,将串口参数设置好后连接。会发现串口屏主动发送了数据。因为之前设置了两个变量,这里也发送了两包不同的数据(不是一起发送,中间有一定延时)。根据上面的协议格式可以分析:

0x16是从设备地址22;0x03是功能码;0x00 01是寄存器地址;0x00 01是读取数量;0xD6 ED是CRC校验码。

软方串口屏RK6043A试用--------modbus Rtu+485开发

如果收到信息立刻(应答超时设置)回复:16 03 02 00 17 8c 49 (16进制)

意思是0x00 17就是串口屏查询寄存器0x00 01中的数据,也就是23(十进制)

软方串口屏RK6043A试用--------modbus Rtu+485开发

效果如下:温度由0变为23

软方串口屏RK6043A试用--------modbus Rtu+485开发


以上就是一些简单的说明,其他复杂功能还在摸索中。



  相关解决方案