迪文科技论坛

 找回密码
 立即注册
搜索
查看: 361|回复: 5

【提问】操作0xb0系统变量关闭开启触控功能

[复制链接]

2

主题

8

回帖

77

积分

注册会员

Rank: 2

积分
77
发表于 2023-6-12 13:19:34 | 显示全部楼层 |阅读模式
我用这个屏幕每次一个操作要关闭打开指定多个触控有的时候会失败怎么回事呢?每个关闭打开操作也都进行了0xb0地址读取是否为0。延迟一个dgus周期的20ms怎么操作呢,我是在while循环中,感觉这样程序效率低很多呀。下面是每次发送关闭/开启操作的判断:

void touchdone()
{
        uint8_t ret = 0;
        while(!ret)
        {
                read_0xb0();        //读取0xb0
                bsp_DelayMS(1);        
                size = queue_find_cmd(cmd_buffer,CMD_MAX_SIZE); //从缓冲区中获取一条指令
                if(size>0)
                {
                        ret = ProcessMessage((PLcdCheckInfo_t)cmd_buffer, size);//指令处理,判断是否返回0
                }
        }
}
回复

使用道具 举报

2

主题

1228

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10484
发表于 2023-6-12 15:22:25 | 显示全部楼层

回帖奖励 +5 金钱


//PageID 页面ID
//  TouchType 触摸类型,具体请参见触摸列表。0x05表示按钮,0x06表示文本输入
//TouchID 在DGUS控件中除基础控件外,当前页面的序号值。
//Status 状态:1表示打开,0表示关闭。
void TouchSwitch(u16 PageID, u8 TouchType, u8 TouchID, u8 Status)
{
        u8 k_data[8];

        *(u16*)k_data = 0x5aa5;
        *(u16*)&k_data[2] = PageID;
        k_data[4] = TouchID;
        k_data[5] = TouchType;
        if(Status)
                *(u16*)&k_data[6] = 1;
        else
                *(u16*)&k_data[6] = 0;
        write_dgus_vp(0xb0,k_data,4);
        do
        {
                delay_us(500);
                read_dgus_vp(0xb0,k_data,1);
        }while(k_data[0]!=0);
}
回复

使用道具 举报

2

主题

8

回帖

77

积分

注册会员

Rank: 2

积分
77
 楼主| 发表于 2023-6-12 16:24:19 | 显示全部楼层
zzs999k 发表于 2023-6-12 15:22
//PageID 页面ID
//  TouchType 触摸类型,具体请参见触摸列表。0x05表示按钮,0x06表示文本输入
//TouchI ...

500us就够了吗,一个迪文周期是20ms。
回复

使用道具 举报

2

主题

1228

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10484
发表于 2023-6-12 16:27:39 | 显示全部楼层
yangshulin 发表于 2023-6-12 16:24
500us就够了吗,一个迪文周期是20ms。

k_data[0]!=0的时候
回复

使用道具 举报

2

主题

8

回帖

77

积分

注册会员

Rank: 2

积分
77
 楼主| 发表于 2023-6-12 18:28:27 | 显示全部楼层
zzs999k 发表于 2023-6-12 16:27
k_data[0]!=0的时候

我的程序也是这样判断,只不过是在循环队列中取出命令,来对命令进行响应,但是关闭打开触控有的时候会失败
回复

使用道具 举报

2

主题

1228

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10484
发表于 2023-6-13 08:34:28 | 显示全部楼层
yangshulin 发表于 2023-6-12 18:28
我的程序也是这样判断,只不过是在循环队列中取出命令,来对命令进行响应,但是关闭打开触控有的时候会失 ...

【资料分享】连续630帧读写无错误 UART2_82/83读写 C51程序代码
http://inforum.dwin.com.cn:20080/forum.p ... d=1171&fromuid=3950    (出处: 迪文科技论坛)

参考以上网址的程序, 用压缩包内的write_dgusii_vp   应该可以了。
write_dgusii_vp 程序与以前的DEMO程序 改变很多。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2025-7-12 17:04 , Processed in 0.033174 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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