OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 3470|回复: 8

TTP229 测试程序

[复制链接]

  离线 

31

主题

90

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2014-6-20
在线时间
25 小时
发表于 2015-6-1 11:57:33 | 显示全部楼层 |阅读模式
5金钱
在淘宝买了一个16个触摸按键的模块,厂家给了资料但是怎么写程序,,,,,求助

TTP229_SPEC_V1.1(Simplified_Chinese).pdf

489.35 KB, 下载次数: 743

最佳答案

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

这东西之前弄过,用来学习的话尚可,用来生产的话就不合适了,串扰太严重,使用时要将TP0~TP4用1M电阻接地, void delay10us(unsigned int n) { while(n--); } void delay1us() //@11.0592MHz { _nop_(); _nop_(); _nop_(); } void ttp229_init() { sdo = 0; scl = 0; ttp229_read(); } unsigned char ttp229_read(void) { unsigned char i; unsigned int temp=0; sdo=0; delay10us(10) ...
回复

使用道具 举报

  离线 

0

主题

3

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2017-5-4
在线时间
2 小时
发表于 2015-6-1 11:57:34 | 显示全部楼层
这东西之前弄过,用来学习的话尚可,用来生产的话就不合适了,串扰太严重,使用时要将TP0~TP4用1M电阻接地,
void delay10us(unsigned int n)
{
        while(n--);
}

void delay1us()                //@11.0592MHz
{
        _nop_();
        _nop_();
        _nop_();
}

void ttp229_init()
{
        sdo = 0;
        scl = 0;
        ttp229_read();
}

unsigned char ttp229_read(void)
{
        unsigned char i;
        unsigned int temp=0;

        sdo=0;
        delay10us(10);
        sdo=1;
        delay10us(2);
        for (i = 0; i < 16; i++)
    {
        scl = 1;
                delay1us();
        scl = 0;
                delay1us();

        if (sdo)
        {
            temp |= (1 << i);
//                        SendRS485(0x55);
                        dat = temp;
                       
        }
    }
        return temp;
//        SendRS485(dat);
}
回复

使用道具 举报

  离线 

10

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2015-5-8
在线时间
2 小时
发表于 2015-6-1 13:44:29 | 显示全部楼层
这就是不在原厂买东西的坏处,没有支持,哈哈。
回复

使用道具 举报

  离线 

31

主题

90

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2014-6-20
在线时间
25 小时
 楼主| 发表于 2015-6-1 15:38:34 | 显示全部楼层
回复【2楼】feijack:
---------------------------------
那你知道原厂家在哪买吗?
回复

使用道具 举报

  离线 

497

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
128098
金钱
128098
注册时间
2010-12-1
在线时间
1130 小时
发表于 2015-6-1 21:59:16 | 显示全部楼层
正点原子公众号
回复【3楼】影腾:
---------------------------------
淘宝买的时候,就得问卖家 要了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

  离线 

4

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
292
金钱
292
注册时间
2016-10-20
在线时间
58 小时
发表于 2017-4-28 15:39:21 | 显示全部楼层
回复

使用道具 举报

  离线 

12

主题

201

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
332
金钱
332
注册时间
2017-7-17
在线时间
66 小时
发表于 2017-12-19 15:27:15 | 显示全部楼层
我也在弄这个按键模块,data sheet上明明就说在两线串行输出模式下,单片机可以等待SDO输出数据有效信号DV(实测90~100us的宽度),然后再发送16个CLK取出数据。但是这个东西真的很诡异:
1)我把SCL和SDO接到32上去,只有1键有反应,而且还必须是在板子不固定的时候(也就是按的时候板子要有一点晃动)才有反应。其他按键完全没反应。而且板子固定不晃动的话,1键也没有反应。
2)我把SCL和SDO不接到32,直接悬空,在板子不固定的时候,所有按键可以正常反应。当板子固定住的时候,所有按键均无反应。
无语了。。。
接到32 晃动.PNG
不接32 晃动.PNG
回复

使用道具 举报

  离线 

12

主题

201

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
332
金钱
332
注册时间
2017-7-17
在线时间
66 小时
发表于 2017-12-19 15:47:14 | 显示全部楼层
PDF描述部分如上。1)法就是说让32一直发SCK去获取数据,这个没什么问题,只要面板感应到了触摸肯定可以输出。2)法是说其实芯片会通过DV信号通知单片机有触摸事件发生,可以读取数据了。这时候32再发16个SCK去读取触摸数据。网上的参考程序都是用1)法,还有很多给的IIC例程,可以说连题目都没有看清楚就回答。还有的给的资料还是TTP229_SPEC_V1.1(Simplified_Chinese),很明显这个是48脚的芯片,不知道那些引用这个资料的人是怎么想的。总之,1)法可以用,但是会浪费MCU时间去查询。而2)法更有效率,但是会出现我上面说的问题,即DV信号并不能准确输出,具体什么原因我还不清楚。
捕获3.PNG
回复

使用道具 举报

  离线 

8

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2016-7-28
在线时间
9 小时
发表于 2018-6-9 17:29:39 | 显示全部楼层
可以参考一下类似的资料,VKD1016L VKD1016B 8-16按键触摸IC

VKD1016B_V1.1_16键英文资料.pdf

455.22 KB, 下载次数: 1

QQ:1918885898

VKD1016L_V1.0_16键英文资料.pdf

508.9 KB, 下载次数: 0

QQ:1918885898

联系人:许先生  QQ:191 888 5898 电话:18898582398   免费样品赠送,工程技术支持,PDF产品资料提供!
回复

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-6-18 19:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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