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

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

MCU发给串口屏的指令是存储在哪里?

[复制链接]

3

主题

12

帖子

97

积分

注册会员

Rank: 2

积分
97
发表于 2021-6-28 17:40:46 | 显示全部楼层 |阅读模式
假如我在单片机用了Record_GetCount命令,单片机发给串口屏的指令是存在uint8  cmd_buffer[CMD_MAX_SIZE]; 这里吗?我看了手册这是串口屏发给MCU的指令缓冲区,求解
回复

使用道具 举报

0

主题

207

帖子

6873

积分

论坛元老

Rank: 8Rank: 8

积分
6873
发表于 2021-6-29 11:45:47 | 显示全部楼层
cmd_buffer[CMD_MAX_SIZE] 该缓冲区为单片机串口接收指令缓冲区,即是屏幕发出来的指令,单片机在While(1)检测buff大小,且有完整数据就取出解析执行
VisualHMI 人机界面 & VisualTFT 串口屏
回复

使用道具 举报

3

主题

12

帖子

97

积分

注册会员

Rank: 2

积分
97
 楼主| 发表于 2021-6-29 19:49:37 | 显示全部楼层
本帖最后由 ULI 于 2021-6-29 19:52 编辑

大神你好,我就是想知道我发送了这个Record_GetCount(),它的返回指令是存在哪里的?我取cmd_buffer的第8第9个字节不就是Count记录数目值吗?代码如下
uint16 Getcount(void)
{
        if((cmd_buffer[1]=0xB1)&&(cmd_buffer[2]=0x55))
        {
                if((cmd_buffer[8]!=0xFF)&&(cmd_buffer[9]!=0xFF))
                {
                        Recordcount = ((cmd_buffer[8]<<8)|cmd_buffer[9]);
                }
                else
                {
                        Recordcount = 618;
                }
        }
        return Recordcount;
}



Record_GetCount(11,1);                                                                //发送获取当前记录数目命令
                 Recount = Getcount();                                                                //将当前记录数目赋值给一个变量
                 printf("当前测试记录总数为:%hu",Recount);                //打印当前测试记录总数
                 printf("***接收到的指令为:%s***",cmd_buffer);
但我打印出来的都是618,打印的指令为 EE B1 55 11 03 30 20 24 50 FF FC FF FF FF,明显就不对啊EE B1 55 00 0B 00 01 1D 00 17 FF FC FF FF(实时记录是23个)


本帖子中包含更多资源

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

x
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12540
发表于 2021-6-30 11:54:06 | 显示全部楼层
官网那个模板的指令处理里面是没有解析记录控件的函数,需要您自己自行参考补充
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

3

主题

12

帖子

97

积分

注册会员

Rank: 2

积分
97
 楼主| 发表于 2021-7-1 16:17:34 | 显示全部楼层
If后要接end 发表于 2021-6-30 11:54
官网那个模板的指令处理里面是没有解析记录控件的函数,需要您自己自行参考补充 ...

你好,我现在就想知道这个返回指令放到了哪里?解析我自己来
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12540
发表于 2021-7-1 16:32:03 | 显示全部楼层
屏发送给单片机的指令是存放在cmd_buff这个数组里面,您可以用官网的物联型单片机程序模拟试一下
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

3

主题

12

帖子

97

积分

注册会员

Rank: 2

积分
97
 楼主| 发表于 2021-7-1 16:48:58 | 显示全部楼层
If后要接end 发表于 2021-7-1 16:32
屏发送给单片机的指令是存放在cmd_buff这个数组里面,您可以用官网的物联型单片机程序模拟试一下 ...

好的谢谢,但是我出来的指令出现画面ID和控件ID不对,而且固定值0x1D也没有,数目值少了一个字节数值也不对,这是什么情况,我用printf打印了cmd_buff的值
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12540
发表于 2021-7-1 16:58:33 | 显示全部楼层
ULI 发表于 2021-7-1 16:48
好的谢谢,但是我出来的指令出现画面ID和控件ID不对,而且固定值0x1D也没有,数目值少了一个字节数值也不 ...

如果您上面的截图是单片机的程序的话,Record_GetCount(11,1) 是您自定义函数的情况下,它要发送读取记录控件数目的指令给屏幕,就是发送EE B1 55 00 0B 00 01 FF FC FF FF 这个指令。如果这不是您自定义的函数的话,那不可能写在程序里面,这是lua脚本的函数。
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

3

主题

12

帖子

97

积分

注册会员

Rank: 2

积分
97
 楼主| 发表于 2021-7-1 17:05:37 | 显示全部楼层
If后要接end 发表于 2021-7-1 16:58
如果您上面的截图是单片机的程序的话,Record_GetCount(11,1) 是您自定义函数的情况下,它要发送读取记录 ...

这个函数是hmi_driver.c里的函数,不是自定义的,这是lua编程才能用的吗?
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12540
发表于 2021-7-1 17:13:16 | 显示全部楼层
那就可以直接用,参数那里屏幕ID和控件ID都是16位的
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 19:05 , Processed in 0.070885 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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