OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2567|回复: 6

正点原子的触摸屏例程为什么会有电容屏校准函数

[复制链接]

40

主题

137

帖子

0

精华

高级会员

Rank: 4

积分
579
金钱
579
注册时间
2019-8-4
在线时间
187 小时
发表于 2020-1-15 09:42:59 | 显示全部楼层 |阅读模式
1金钱
这个例程里面的
void ctp_test(void)
{
        u8 t=0;
        u8 i=0;                      
        u16 lastpos[5][2];                //记录最后一次的数据
        while(1)
        {
                tp_dev.scan(0);
                for(t=0;t<CT_MAX_TOUCH;t++)
                {
                        if((tp_dev.sta)&(1<<t))
                        {
                                if(tp_dev.x[t]<lcddev.width&&tp_dev.y[t]<lcddev.height)
                                {
                                        if(lastpos[t][0]==0XFFFF)
                                        {
                                                lastpos[t][0] = tp_dev.x[t];
                                                lastpos[t][1] = tp_dev.y[t];
                                        }
                                        lcd_draw_bline(lastpos[t][0],lastpos[t][1],tp_dev.x[t],tp_dev.y[t],2,POINT_COLOR_TBL[t]);//画线
                                        lastpos[t][0]=tp_dev.x[t];
                                        lastpos[t][1]=tp_dev.y[t];
                                        if(tp_dev.x[t]>(lcddev.width-24)&&tp_dev.y[t]<16)
                                        {
                                                Load_Drow_Dialog();//清除
                                        }
                                }
                        }else lastpos[t][0]=0XFFFF;
                }
               
                delay_ms(5);i++;
                if(i%20==0)LED0=!LED0;
        }       
}是干什么用的,电容屏要校准?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14407
金钱
14407
注册时间
2018-8-3
在线时间
1156 小时
发表于 2020-1-15 09:50:30 | 显示全部楼层
这个是电阻屏幕 用到的
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2020-1-15 10:04:18 | 显示全部楼层
例程是电阻屏和电容屏都可以用,校准是用于电阻屏的。
回复

使用道具 举报

40

主题

137

帖子

0

精华

高级会员

Rank: 4

积分
579
金钱
579
注册时间
2019-8-4
在线时间
187 小时
 楼主| 发表于 2020-1-15 18:53:23 | 显示全部楼层
tp_dev.x[4]=tp_dev.x[0];//记录第一次按下时的坐标
那为什么要记录下来第一个点的坐标
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2020-1-16 02:20:22 | 显示全部楼层
taomao 发表于 2020-1-15 18:53
tp_dev.x[4]=tp_dev.x[0];//记录第一次按下时的坐标
那为什么要记录下来第一个点的坐标

把代码看完
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

40

主题

137

帖子

0

精华

高级会员

Rank: 4

积分
579
金钱
579
注册时间
2019-8-4
在线时间
187 小时
 楼主| 发表于 2020-1-16 19:18:28 | 显示全部楼层
                                  if(tp_dev.touchtype&0X01)//横屏
                                        {
                                                tp_dev.y=((u16)buf[1]<<8)+buf[0];//电容屏横屏为什么这么坐标读取了?
                                                tp_dev.x=800-(((u16)buf[3]<<8)+buf[2]);
                                        }
                                        else
                                        {
                                                tp_dev.x=((u16)buf[1]<<8)+buf[0];
                                                tp_dev.y=((u16)buf[3]<<8)+buf[2];
                                        }  
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2020-1-19 00:49:22 | 显示全部楼层
taomao 发表于 2020-1-16 19:18
if(tp_dev.touchtype&0X01)//横屏
                                        {
                                                tp_dev.y=((u16)buf[ ...

你可以试试不这么读取,然后看看结果,就知道了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-19 23:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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