OpenEdv-开源电子网

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

这个程序是什么意思?大家帮帮忙!!小弟初来咋到!!!

[复制链接]

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2016-7-20
在线时间
20 小时
发表于 2016-8-2 23:34:13 | 显示全部楼层 |阅读模式
1金钱
u8 FT5206_Scan(u8 mode)
{
        u8 buf[4];
        u8 i=0;
        u8 res=0;
        u8 temp;
        static u8 t=0;//控制查询间隔,从而降低CPU占用率   
        t++;
        if((t%10)==0||t<10)//空闲时,每进入10次CTP_Scan函数才检测1次,从而节省CPU使用率
        {
                FT5206_RD_Reg(FT_REG_NUM_FINGER,&mode,1);//读取触摸点的状态  
                if((mode&0XF)&&((mode&0XF)<6))
                {
                        temp=0XFF<<(mode&0XF);//将点的个数转换为1的位数,匹配tp_dev.sta定义
                        tp_dev.sta=(~temp)|TP_PRES_DOWN|TP_CATH_PRES;
                        for(i=0;i<5;i++)
                        {
                                if(tp_dev.sta&(1<<i))        //触摸有效?
                                {
                                        FT5206_RD_Reg(FT5206_TPX_TBL[i],buf,4);        //读取XY坐标值
                                        if(tp_dev.touchtype&0X01)//横屏
                                        {
                                                tp_dev.y[i]=((u16)(buf[0]&0X0F)<<8)+buf[1];
                                                tp_dev.x[i]=((u16)(buf[2]&0X0F)<<8)+buf[3];
                                        }else
                                        {
                                                tp_dev.x[i]=480-(((u16)(buf[0]&0X0F)<<8)+buf[1]);
                                                tp_dev.y[i]=((u16)(buf[2]&0X0F)<<8)+buf[3];
                                        }  
                                        if((buf[0]&0XF0)!=0X80)tp_dev.x[i]=tp_dev.y[i]=0;//必须是contact事件,才认为有效
                                        //printf("x[%d]:%d,y[%d]:%d\r\n",i,tp_dev.x[i],i,tp_dev.y[i]);
                                }                       
                        }
                        res=1;
                        if(tp_dev.x[0]==0 && tp_dev.y[0]==0)mode=0;        //读到的数据都是0,则忽略此次数据
                        t=0;                //触发一次,则会最少连续监测10次,从而提高命中率
                }
        }
        if((mode&0X1F)==0)//无触摸点按下
        {
                if(tp_dev.sta&TP_PRES_DOWN)        //之前是被按下的
                {
                        tp_dev.sta&=~(1<<7);        //标记按键松开
                }else                                                //之前就没有被按下
                {
                        tp_dev.x[0]=0xffff;
                        tp_dev.y[0]=0xffff;
                        tp_dev.sta&=0XE0;        //清除点有效标记       
                }         
        }        
        if(t>240)t=10;//重新从10开始计数
        return res;
}
我在触摸屏初始化后,使用这个函数串口打印怎么是0啊!!在触摸液晶屏的时候!!

最佳答案

查看完整内容[请看2#楼]

这是我们的电容触摸屏扫描函数.你先用我们的触摸屏代码测试下,如果不能触摸了,说明有可能触摸屏坏了.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-8-2 23:34:14 | 显示全部楼层
这是我们的电容触摸屏扫描函数.你先用我们的触摸屏代码测试下,如果不能触摸了,说明有可能触摸屏坏了.
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2016-7-20
在线时间
20 小时
 楼主| 发表于 2016-8-3 09:10:39 | 显示全部楼层
:):):):)
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2016-7-20
在线时间
20 小时
 楼主| 发表于 2016-8-3 12:33:47 | 显示全部楼层
怎么没人    ,,,,
回复

使用道具 举报

35

主题

181

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1115
金钱
1115
注册时间
2016-8-1
在线时间
235 小时
发表于 2016-8-3 13:16:55 | 显示全部楼层
这种问题问得有人回答才怪
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2016-7-20
在线时间
20 小时
 楼主| 发表于 2016-8-3 14:23:34 | 显示全部楼层
rindy 发表于 2016-8-3 13:16
这种问题问得有人回答才怪

那应该怎么问。请指点,,谢谢。。
回复

使用道具 举报

69

主题

495

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2196
金钱
2196
注册时间
2015-11-14
在线时间
542 小时
发表于 2016-8-3 14:27:55 | 显示全部楼层
你是想找人给你详细地解释这程序?还是大概说一下这程序有什么用?
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2016-7-20
在线时间
20 小时
 楼主| 发表于 2016-8-3 14:41:11 | 显示全部楼层
单模先声 发表于 2016-8-3 14:27
你是想找人给你详细地解释这程序?还是大概说一下这程序有什么用?

程序我能看懂 ,就是不知道该怎么用,注释的是触摸扫描函数 ,但是我触摸时  他返回值不对,所以就不知道怎么用了??谢谢了
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2016-7-20
在线时间
20 小时
 楼主| 发表于 2016-8-3 14:41:28 | 显示全部楼层
单模先声 发表于 2016-8-3 14:27
你是想找人给你详细地解释这程序?还是大概说一下这程序有什么用?

程序我能看懂 ,就是不知道该怎么用,注释的是触摸扫描函数 ,但是我触摸时  他返回值不对,所以就不知道怎么用了??谢谢了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 04:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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