OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 3932|回复: 7

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, 下载次数: 857

最佳答案

查看完整内容[请看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

积分
90
金钱
90
注册时间
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:
---------------------------------
那你知道原厂家在哪买吗?
回复

使用道具 举报

  在线 

511

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
133754
金钱
133754
注册时间
2010-12-1
在线时间
1280 小时
发表于 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 | 显示全部楼层
回复

使用道具 举报

  离线 

14

主题

221

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
376
金钱
376
注册时间
2017-7-17
在线时间
73 小时
发表于 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
回复

使用道具 举报

  离线 

14

主题

221

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
376
金钱
376
注册时间
2017-7-17
在线时间
73 小时
发表于 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
回复

使用道具 举报

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

本版积分规则




关闭

报名原子哥新品发布会&粉丝见面会上一条 /1 下一条

正点原子公众号

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

GMT+8, 2018-10-19 18:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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