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

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

调试

[复制链接]

37

主题

104

帖子

389

积分

中级会员

Rank: 3Rank: 3

积分
389
发表于 2023-5-24 09:10:35 | 显示全部楼层 |阅读模式
测试接收数据时,根据例程操作,在帧尾检查哪里总是不成立,打印数据发现,在帧尾数据左移那一步最是丢失最后一个字节或者中间某一字节丢失,请问这是什么原因啊?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12613
发表于 2023-5-24 10:21:26 | 显示全部楼层
这里判断应该有些问题,不应该与上cmd_end,而是与上对应帧尾字节数的0xFF
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

37

主题

104

帖子

389

积分

中级会员

Rank: 3Rank: 3

积分
389
 楼主| 发表于 2023-5-24 10:35:30 | 显示全部楼层
If后要接end 发表于 2023-5-24 10:21
这里判断应该有些问题,不应该与上cmd_end,而是与上对应帧尾字节数的0xFF

cmd_end变量初始化的值就是对应的帧尾,与上他应该没问题吧。打印cmd_end_tag数据就发现左移过程中会丢失数据
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12613
发表于 2023-5-24 10:54:31 | 显示全部楼层
xiao 发表于 2023-5-24 10:35
cmd_end变量初始化的值就是对应的帧尾,与上他应该没问题吧。打印cmd_end_tag数据就发现左移过程中会丢失 ...

cmd_end_tag只需要低位对应帧尾的字节数,其它字节不影响这个帧尾判断,或者你把测试的指令,工程发出来看看
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

37

主题

104

帖子

389

积分

中级会员

Rank: 3Rank: 3

积分
389
 楼主| 发表于 2023-5-24 11:44:01 | 显示全部楼层
If后要接end 发表于 2023-5-24 10:54
cmd_end_tag只需要低位对应帧尾的字节数,其它字节不影响这个帧尾判断,或者你把测试的指令,工程发出来 ...

1、record_insert()函数第三个参数应该是指定位置吧,我在接收数据回调函数里面调用record_insert,执行出来的效果和record_add一样,并不是在指定位置插入数据。
2、在接收数据回调函数调用record_clear也没有执行,这是怎么回事啊
回复

使用道具 举报

37

主题

104

帖子

389

积分

中级会员

Rank: 3Rank: 3

积分
389
 楼主| 发表于 2023-5-24 11:56:08 | 显示全部楼层
开机收到第一帧数据record_clear操作成功了,之后的数据record_clear就没有成功,以下是逻辑处理,请问哪里有什么问题吗
for i=0, recv_packet_size do
                         record_add(5,31,packet[i]..";")
                        if packet[i] == cmd_head and cmd_head_tag == 0 then
                                cmd_head_tag = 1
                        end
                       
                        if cmd_head_tag == 1 then
                                store_buffer[cmd_length] = packet[i]
                                cmd_length = cmd_length + 1
                                cmd_end_tag = (cmd_end_tag << 8) | packet[i]
                                record_add(5,27,cmd_end_tag)

                                if (cmd_end_tag & cmd_end) == cmd_end then
                                        local len = cmd_length - 1
                                        record_clear(5,28)
                                        set_text(5,30,0xFF)
                                        for j=0,len do
                                                record_insert(5,28,j,store_buffer[j]..";")
                                        end
                                end
                        end
                end
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12613
发表于 2023-5-24 14:51:06 | 显示全部楼层
xiao 发表于 2023-5-24 11:56
开机收到第一帧数据record_clear操作成功了,之后的数据record_clear就没有成功,以下是逻辑处理,请问哪里 ...

虚拟屏一步步print一些字符串,看看哪里没有执行,或者哪里报错了
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

37

主题

104

帖子

389

积分

中级会员

Rank: 3Rank: 3

积分
389
 楼主| 发表于 2023-5-24 16:03:11 | 显示全部楼层
If后要接end 发表于 2023-5-24 14:51
虚拟屏一步步print一些字符串,看看哪里没有执行,或者哪里报错了

数据显示在屏幕上都是十进制,请问怎么转换为16进制
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12613
发表于 2023-5-25 08:43:42 | 显示全部楼层
xiao 发表于 2023-5-24 16:03
数据显示在屏幕上都是十进制,请问怎么转换为16进制

具体找一下string.format的用法
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-1 07:43 , Processed in 0.049768 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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