OpenEdv-开源电子网

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

用ft5206.c的代码,触摸屏不灵敏怎么解?

[复制链接]

43

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-4-29
在线时间
137 小时
发表于 2017-12-29 10:20:05 | 显示全部楼层 |阅读模式
1金钱
我的触屏是ft6206,厂家给的代码是f103,移植到f407后,ID都读不出来,看代码和原子哥的ft5206.c基本一直,只是延时稍有区别,于是就直接用原子哥的ft5206.c。

但是必须把下面几个寄存器的配置代码注释掉,否则读出来的ID就不对了,全FF,只留一个写FT_ID_G_THGROUP寄存器操作。
#if 0
        FT5206_WR_Reg(FT_DEVIDE_MODE,temp,1);        //进入正常操作模式
        FT5206_WR_Reg(FT_ID_G_MODE,temp,1);                //查询模式
        temp[0]=12;                                                                //激活周期,不能小于12,最大14
        FT5206_WR_Reg(FT_ID_G_PERIODACTIVE,temp,1);

#endif

现在能读到芯片ID=0x30F8,只是触摸屏非常不灵敏,按好几次,FT_REG_NUM_FINGER才能读出来非0值。

但是把这个屏接在厂家配套的f103开发板上是很灵敏。

最佳答案

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

问题已经解决 主要是 1.IO口驱动能力被设置的太强了,由PP改成OD 2.触屏的坐标信息一直都能读到,把中断脚接出来,做个双重判断,过滤一些废的坐标信息
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

43

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-4-29
在线时间
137 小时
 楼主| 发表于 2017-12-29 10:20:06 | 显示全部楼层
问题已经解决

主要是
1.IO口驱动能力被设置的太强了,由PP改成OD
2.触屏的坐标信息一直都能读到,把中断脚接出来,做个双重判断,过滤一些废的坐标信息
回复

使用道具 举报

43

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-4-29
在线时间
137 小时
 楼主| 发表于 2017-12-29 19:36:15 | 显示全部楼层
怎么都没人查看过呢
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-12-30 00:44:19 | 显示全部楼层
我们也有407的代码呢,灵敏的很啊,别改延时!!
回复

使用道具 举报

43

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-4-29
在线时间
137 小时
 楼主| 发表于 2017-12-31 18:44:52 | 显示全部楼层
正点原子 发表于 2017-12-30 00:44
我们也有407的代码呢,灵敏的很啊,别改延时!!

我说的不灵敏,用的就是原子哥407中的ft5206代码,延时我没有改,只是屏蔽了下面几行,否则ID读出来的是全FF
#if 0
        FT5206_WR_Reg(FT_DEVIDE_MODE,temp,1);        //进入正常操作模式
        FT5206_WR_Reg(FT_ID_G_MODE,temp,1);                //查询模式
        temp[0]=12;                                                                //激活周期,不能小于12,最大14
        FT5206_WR_Reg(FT_ID_G_PERIODACTIVE,temp,1);

#endif


厂家给的代码是103上的,我移植到407上来,更是连ID都读不到
回复

使用道具 举报

43

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-4-29
在线时间
137 小时
 楼主| 发表于 2017-12-31 23:35:33 | 显示全部楼层
正点原子 发表于 2017-12-30 00:44
我们也有407的代码呢,灵敏的很啊,别改延时!!

Dear 原子哥@正点原子

现在我已经放弃厂家给的103代码了,专攻您的ft5206.c代码,发现一个奇怪的现象:

FT5206_RD_Reg(FT5206_TPX_TBL[0],buf,4);
xx = ((u16)(buf[0])<<8)+buf[1];
yy = ((u16)(buf[2])<<8)+buf[3];

为啥xx和yy一直都是:
xx = 0x100A = 4106;
yy = 0x0300 = 768;
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-1-1 00:54:04 | 显示全部楼层
abc3240660 发表于 2017-12-31 23:35
Dear 原子哥@正点原子

现在我已经放弃厂家给的103代码了,专攻您的ft5206.c代码,发现一个奇怪的现象 ...

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

使用道具 举报

43

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-4-29
在线时间
137 小时
 楼主| 发表于 2018-1-2 09:50:55 | 显示全部楼层
正点原子 发表于 2018-1-1 00:54
你有我们开发板么?直接测试。

现在我用的是自己画的407板子,已经把原子哥的综合实验移植过来了,是不是模拟IIC的PB8和PB9脚硬件上需要特殊配置啊?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-1-3 01:50:41 | 显示全部楼层
abc3240660 发表于 2018-1-2 09:50
现在我用的是自己画的407板子,已经把原子哥的综合实验移植过来了,是不是模拟IIC的PB8和PB9脚硬件上需要 ...

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

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-1-19
在线时间
1 小时
发表于 2018-1-19 17:16:44 | 显示全部楼层
你好,我从淘宝拿的FT5206的触摸屏,但是读到的ID是0X3003的。但是在没有触摸的情况下,状态也读到0X05    坐标数据都是0XFF。你的屏是在哪买的。我也想拿屏
回复

使用道具 举报

43

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-4-29
在线时间
137 小时
 楼主| 发表于 2018-1-19 17:25:37 | 显示全部楼层
本帖最后由 abc3240660 于 2018-1-19 17:27 编辑
cainiao402 发表于 2018-1-19 17:16
你好,我从淘宝拿的FT5206的触摸屏,但是读到的ID是0X3003的。但是在没有触摸的情况下,状态也读到0X05     ...

淘宝上买的啊 好钜润
我是FT6206
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-1-19
在线时间
1 小时
发表于 2018-1-22 08:39:02 | 显示全部楼层
abc3240660 发表于 2018-1-19 17:25
淘宝上买的啊 好钜润
我是FT6206

嗯好的。谢谢。
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-1-19
在线时间
1 小时
发表于 2018-1-22 09:33:03 | 显示全部楼层
你好我想问下,这个触摸IC的INT脚的触发电平,是我们可以配置的。还是厂商设置好的呢。我的可以读到ID号。但是触摸INT脚一直没有反应。
回复

使用道具 举报

43

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2016-4-29
在线时间
137 小时
 楼主| 发表于 2018-1-23 09:47:43 | 显示全部楼层
cainiao402 发表于 2018-1-22 09:33
你好我想问下,这个触摸IC的INT脚的触发电平,是我们可以配置的。还是厂商设置好的呢。我的可以读到ID号。 ...

厂商设置好的吧

我之前是没有触摸时,也能读到一些废的坐标信息

所以加了个INT脚双重判断
回复

使用道具 举报

3

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2020-4-1
在线时间
10 小时
发表于 2020-4-22 15:12:05 | 显示全部楼层
大佬 你能把那家淘宝店给一下吗  QQ962279960
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2020-5-13
在线时间
3 小时
发表于 2020-7-27 16:32:36 | 显示全部楼层
我出现这个问题是时序没匹配好
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2020-10-15
在线时间
0 小时
发表于 2020-10-15 15:18:04 | 显示全部楼层
请问原子哥的ft5206.c中,怎么设置触摸灵敏度?
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2020-10-15
在线时间
0 小时
发表于 2020-10-15 15:20:21 | 显示全部楼层
//初始化FT5206触摸屏
//返回值:0,初始化成功;1,初始化失败
u8 FT5206_Init(void)
{
        u8 temp[2];
    GPIO_InitTypeDef GPIO_Initure;

    __HAL_RCC_GPIOH_CLK_ENABLE();                        //开启GPIOH时钟
    __HAL_RCC_GPIOA_CLK_ENABLE();                        //开启GPIOI时钟
               
    //PH7
    GPIO_Initure.Pin=GPIO_PIN_0;            //PA0
    GPIO_Initure.Mode=GPIO_MODE_INPUT;      //输入
    GPIO_Initure.Pull=GPIO_PULLUP;          //上拉
    GPIO_Initure.Speed=GPIO_SPEED_HIGH;     //高速
    HAL_GPIO_Init(GPIOA,&GPIO_Initure);     //初始化
            
    //PI8
    GPIO_Initure.Pin=GPIO_PIN_3;            //PH3
    GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;  //推挽输出
    HAL_GPIO_Init(GPIOH,&GPIO_Initure);     //初始化
        
        CT_IIC_Init();              //初始化电容屏的I2C总线  
        FT_RST=0;                                //复位
        delay_ms(20);
        FT_RST=1;                                //释放复位                    
        delay_ms(50);         
        temp[0]=0;
        FT5206_WR_Reg(FT_DEVIDE_MODE,temp,1);        //进入正常操作模式
        FT5206_WR_Reg(FT_ID_G_MODE,temp,1);                //查询模式
        temp[0]=22;                                                                //触摸有效值,22,越小越灵敏
        FT5206_WR_Reg(FT_ID_G_THGROUP,temp,1);        //设置触摸有效值
        temp[0]=12;                                                                //激活周期,不能小于12,最大14
        FT5206_WR_Reg(FT_ID_G_PERIODACTIVE,temp,1);
        //读取版本号,参考值:0x3003
        FT5206_RD_Reg(FT_ID_G_LIB_VERSION,&temp[0],2);  
        if((temp[0]==0X30&&temp[1]==0X03)||temp[1]==0X01||temp[1]==0X02)//版本:0X3003/0X0001/0X0002
        {
                printf("CTP ID:%x\r\n",((u16)temp[0]<<8)+temp[1]);
                return 0;
        }
        return 1;
}
实际设置temp[0]值没效果.
回复

使用道具 举报

8

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
311
金钱
311
注册时间
2016-10-1
在线时间
117 小时
发表于 2021-12-18 18:59:26 | 显示全部楼层
abc3240660 发表于 2017-12-29 10:20
问题已经解决

主要是

我也遇到这个情况了,复制原来F767开发板的代码,发现不行,初始化都通不过,后来看了你这个帖子才发现原来F767开发板带的例子居然也是用的PP输出居然可以用,但是到了H743却不行。改成OD输出就可以了。害的我折腾了两三个小时,还以为电路焊接有问题
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 14:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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