串口调试方法
一、上位机(vp软件)模拟调试 无实物
调试目的:此次调试,在vp上模拟上位机和屏的通讯
Vp可以在无串口屏实物的情况下模拟串口屏运行和通讯
1、新建工程
打开vp软件,新建一个只有一个文本框控件简单的工程,任意选择一个型号
新建好之后用vp软件打开如图所示
2、编译 调试
进入调试界面,如图
3、测试要点
本次测试为模拟测试,不涉及硬件,仅仅测试指令通讯的脚本格式。
指令通讯时需要勾选发送换行符,在实际使用时应在指令后面加”\r\n“。
根据控件名设置控件属性,当工程中有两个相同的控件名时,需要在控件名前面加页名称以作区分(如示例)
4、测试结果
在发送去输入指令”west page0.textBox.txt"hello"“ 并且勾选发送换行符,点击发送,调试界面该控件显示内容”hello“
5、更多测试
vp模拟测试,也可给工程发十六进制数据包,工程会根据接收的数据包,使用脚本进行解析。显示对应的界面数据。
二、串口屏连接上位机(串口助手)调试
1、联机调试基础知识
串口屏的usb接口,不可用于通讯,仅用于下载工程或供电。
三易串口屏有多种接口可供客户选择使用(ttl 485 232 CAN),但是要注意这些接口不是兼容的,在串口屏主板上,一个4pin接口通常有两组丝印,但它只能作为一种接口来使用,客户要根据自己实际选择购买的型号判断具体接口类型。
Ttl或者232设备之间连接必须是一对一的连接,串口屏的R接设备的T,串口屏的T接设备的R,GND接GND;ttl或者232设备通讯连接一定要共地。
485接口则可以组网,且多数场合不需要共地,485总线上若接了较多设备,建议在总线上焊接一个120欧的匹配电阻,串口屏主板上保留了焊盘但是没有默认焊接。
S系列,提供了隔离485选项,如有强电或者电源质量不好的环境建议使用隔离485,并且配电阻触摸(此环境不建议且不适用电容触摸)。
另外,串口屏上也保留了485的上拉和下拉电阻焊盘,客户如果需要可自行匹配。
使用双串口的串口屏,只能使用一端的4pin接口供电,如果两个接口都接了电源且存在压差,高压电源会烧坏低压电源。
使用外部电源(5v除外)时不建议同时使用type-c
2、联机调试常用软件和硬件
电脑模拟上位机,串口助手建议使用SSOCM V5.13.1
USB转串口工具,该工具市面上较为普遍,选择适当的一款即可,在这里推荐使用本公司生产的一块ttl/485二合一转接板
串口屏,4pin连接线,Type-c数据线,usb转串口小板子
3、接线
电脑-数据线-usb转串口板-4pin连接线-串口屏
电脑端usb功率一般可驱动G系列以及4.3寸和7寸普清串口屏,如果出现串口屏无法启动情况则为功率或者电压不够,此时可采取三种办法额外供电
① 使用手机充电器额外供电
② 给usb转串口工具加一个电源适配器
③ 用大电源单独给4pin接口的vcc gng供电
串口屏供电如果出现功率不足卡死,那么应该断掉全部的电之后再用足够功率的电源供电
Ttl或232串口通讯时串口屏与转接小班必须共地
4、发指令通讯调试
方法一:
指令方式测试通讯(此方式只适用于调试主串口)
客户收到的串口屏会自带出厂工程,正确连线之后屏幕为点亮状态
① 打开串口助手,选择正确的端口号,一般为:ch340驱动(例如:COM12 USB-SERIAL CH340)
② 打开串口,选择波特率(出厂工程为115200)不勾选HEX显示与发送,如图设置
③ 在发送区输入version(查询版本指令),勾选加回车换行(如果无换行快捷操作选项,则输入version\r\n) 点击发送
④ 串口屏接收到version指令会迅速返回当前硬件和固件的版本号,型号以及相关型号信息
方法二
自定义协议方式(本例处理字符串的发送和接收)
此方式可以调试主串口或者扩展串口通讯,此处以扩展串口为例(单串口型号用户,也可以用此方法调试主串口)
① 创建一个与串口屏实物型号一致的工程,
② 在页面上添加一个按钮控件和日志控件以及一个扩展协议解析器控件,扩展协议解析器属性配置如下
自定义协议通讯必须要使用扩展协议解析器控件(测试扩展串口)
③ 扩展串口接收到的数据会缓存在扩展串口协议解析器的rxBuf数组里面,我们在扩展串口协议解析器的数据接收时间中写下脚本,处理接收到的数据,在这里我们用日志控件直接显示接收到的内容,脚本如下
log2.addBytes(exptl0.rxBuf0,exptl0.rxLen);
log2 为日志控件名称
log2.addBytes() 为日志控件打印数组专用函数,参数为(数组名,起始位,打印数组长度)
exptl0 为扩展协议解析器名称
exptl0.rxBuf 为缓存扩展串口接收到的数据的数组(只读)
expt0.rxLen 为接收到数据的长度
④ 扩展串口发送数据使用发送函数 exptl0.uartSend()(发送字符串)
在按钮的弹起事件写下发送函数的脚本
⑤ 点击vp上方编译,下载 将串口屏工程下载至串口屏
注意:
l 接线方式此时应接待测接口
l 工程下载可以用串口下载,选择正确的串口和波特率后即可确认下载
l 如果串口下载出现“端口被拒绝访问字样”则应检查是不是其他串口助手打开了该端口
l 直接使用usb直接下载方便快捷
⑥ 下载成功之后正确接线,打开串口助手,选择正确波特率打开端口。此时发送随意字符串内容至扩展串口,例“hello sany”,串口屏日志控件出显示发送内容。点击串口屏上按钮,串口助手接收串口显示串口屏发送内容“hello world”;
//贴图
注:此方法测试主串口通讯时,将扩展协议解析器控件换成协议解析器控件即可
协议解析器接收事件脚本
log2.addBytes(protocol3.rxBuf,0,protocol3.rxLen);
log2 为日志控件名称
log2.addBytes() 为日志控件打印数组专用函数,参数为(数组名,起始位,打印数组长度)
protocol3 为协议解析器名称
protocol3.rxBuf 为缓存主串口接收到的数据的数组(只读)
protocol3.rxLen 为接收到数据的长度
按钮发送字符串脚本 **使用发送函数 uartSend();**函数参数为待发送字符串
三、上位机(vp软件)或者串口屏实物连接单片机调试
调试前瞻:上位机vp软件能模拟实体屏幕除io、校准、扩展串口等少数功能外的绝大部分功能,在实物送达之前可以通过vp模拟进行工程开发,提高研发效率。
接线
① 大多数单片机为ttl接口,此时要注意,串口屏提供的ttl为3.3v电平,需要确认单片机的ttl电平是否为3.3v,如果是5v单片机则需要用降压电路将5v电平转为3.3v才能与串口屏通讯。
② 与单片机连接时一定要共地,屏幕支持的电压包括5V可以一起与之供电,但是要确保电压功率足够。
测试部分.
(本次调试工程可在资源包下载,典型应用实验1,文档内容点此此处查看典型应用实验1)
四、Modbus 协议通讯调试(主串口)
接线
Modbus通讯的设备,通常采用的串口接口为RS485或者RS232,选型的时候要确保串口屏与其一致。在强电磁环境中,要将串口屏与设备共地,同时应该严格采用双绞屏蔽线,选取触摸类型时,这种环境下应尽量选择电阻触摸,抗干扰能力更强,甚至在这些措施都没有效果的情况下,可以选择隔离485。
通讯失败简要排查手段
l 如果屏或者上位机作为modbus主站,首先可以将modbusread函数中的超时时间设置长一点,例如200ms或者更长。有条件的情况下,可以用 串口助手连接设备,测试一下设备返回的时间间隔,从而判断超时时间设置是否合理
l 检查通讯参数,波特率,停止位,校验位是否一致。需要注意的是,数据长度为8且不能更改。如果设备数据长度是7位的话,需要将收到的数据移位从而获得需要的数据
l 项目设置里面的通讯参数是主串口相关,如果屏不能正常接收数据,请检查项目设置里面接收超时是否为0,在绝大多数波特率下此接收超时默认为0即可。
测试部分
五、扩展串口调试
扩展串口连线与主串口一致,具体案例可以参考主串口写法,以下是一些注意要点
l 调用扩展串口时,必须要拖一个扩展协议解析器至特殊控件栏才可使用
l 扩展串口做modbus主站,对从站轮询时,可以用定时器定时发送轮询报文
l 工程项目设置里设置的主 从机,从机地址,波特率停止位,校验位都只能设置主串口的参数,扩展串口这些参数设置,都要在扩展协议解析器的控件属性设置,部分可脚本读写设置。
l 扩展串口不能接收识别系统指令,只能使用自定义协议或者modbus协议进行通讯
l 采用modbus协议通信时出函数写法格式有区别,modbus协议使用与主串口没有区别,都是采用标准modbus协议。
l Modbus.rxbuf数组第一位为modbus协议数据域第一个数据,主站接收时,rxbuf[0]为数据长度,从站接收时rxbuf[0]为寄存器地址的第一个字节。如果做从站时接受的数据不对,可以用串口助手获取485总线的数据进行分析。
六、CAN接口调试
注意:
CAN接口跟据CAN芯片类型来使用不一样的调试助手。
测试部分
本次调试工程可在资源包下载,典型应用实验5CAN通讯实验,文档内容点此此处查看典型应用