广州大彩串口屏论坛_大彩开发者交流论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 97|回复: 3

求助关于页面卡顿

[复制链接]

1

主题

3

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 5 天前 | 显示全部楼层 |阅读模式
我使用的设备型号是DC28142M070,使用Lua脚本解析自定义协议,目前碰到了一个问题,当在on_uart_recv_data中处理接收数据时,会出现显示界面卡顿的问题,但是数据处理过程中并没有刷新界面参数的操作。请问这个问题有解决的办法吗,已经测试过很多方法包括转存接收数据在定时函数中处理和缩短通讯数据长度(改为1字节)都未能解决。

回复

使用道具 举报

0

主题

340

帖子

972

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
972
发表于 4 天前 | 显示全部楼层
接收数据应保持100MS左右时间,自定义协议需要做分包粘包操作,1.接收函数逻辑:lua串口接收回调函数on_uart_recv_data(packet),其中packet不一定是完整的一帧报文大概率存在分包,且帧与帧之间也可能存在粘包的情况。实体屏串口接收不属于中断回调。在应用中需声明一个全局数组将完整的数据获取缓存到数组中再做解析,当接收完完整一帧数组后再将数组清空处理。
2.接收函数里面并未做分包处理去判断接收完整帧数组,导致接收的解析帧不完整。因串口回调函数是只要有数据接收就会一直触发所以接收时packet并不是一次性接受完整一帧数据存在分包接收的情况所以不能直接在回调函数里面写长度清零,需做判断接收完整一帧数据后做清空数组的操作
可以参考例程:https://video.gz-dc.com/LUA%E6%9 ... %8C%87%E4%BB%A4.zip
回复

使用道具 举报

1

主题

3

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 4 天前 | 显示全部楼层
谢谢回答,自定义协议这块自测是没有问题的,出现问题的情况时仅读取on_uart_recv_data函数中读取返回数据的首字节判断并设置一下全局变量,并没有执行复杂的解析和处理,测试发现只要on_uart_recv_data中有数据返回就会造成显示界面的卡顿。
回复

使用道具 举报

1

主题

3

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 前天 16:04 | 显示全部楼层
问题已解决,经过技术支持的指导,发现问题出现在串口总超时和字节间隔超时上。将这两个值改小,问题解决。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|广州大彩串口屏论坛_大彩开发者交流论坛

GMT+8, 2024-10-16 16:53 , Processed in 0.057096 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表