1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这东西之前弄过,用来学习的话尚可,用来生产的话就不合适了,串扰太严重,使用时要将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); } |
|
|
|
这就是不在原厂买东西的坏处,没有支持,哈哈。
|
|
|
|
那你知道原厂家在哪买吗?
|
|
|
|
我也在弄这个按键模块,data sheet上明明就说在两线串行输出模式下,单片机可以等待SDO输出数据有效信号DV(实测90~100us的宽度),然后再发送16个CLK取出数据。但是这个东西真的很诡异:
1)我把SCL和SDO接到32上去,只有1键有反应,而且还必须是在板子不固定的时候(也就是按的时候板子要有一点晃动)才有反应。其他按键完全没反应。而且板子固定不晃动的话,1键也没有反应。 2)我把SCL和SDO不接到32,直接悬空,在板子不固定的时候,所有按键可以正常反应。当板子固定住的时候,所有按键均无反应。 无语了。。。 |
|
|
|
PDF描述部分如上。1)法就是说让32一直发SCK去获取数据,这个没什么问题,只要面板感应到了触摸肯定可以输出。2)法是说其实芯片会通过DV信号通知单片机有触摸事件发生,可以读取数据了。这时候32再发16个SCK去读取触摸数据。网上的参考程序都是用1)法,还有很多给的IIC例程,可以说连题目都没有看清楚就回答。还有的给的资料还是TTP229_SPEC_V1.1(Simplified_Chinese),很明显这个是48脚的芯片,不知道那些引用这个资料的人是怎么想的。总之,1)法可以用,但是会浪费MCU时间去查询。而2)法更有效率,但是会出现我上面说的问题,即DV信号并不能准确输出,具体什么原因我还不清楚。
|
|
|
|
只有小组成员才能发言,加入小组>>
3314 浏览 9 评论
2995 浏览 16 评论
3494 浏览 1 评论
9059 浏览 16 评论
4088 浏览 18 评论
1178浏览 3评论
605浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
599浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2335浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1896浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 05:47 , Processed in 1.292496 second(s), Total 85, Slave 67 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号