最近有个数字键盘的小项目要做,前段时间搜索了一些芯片发现CH549似乎可以单片即可实现。咨询了下价格也非常优秀,就打了块板子回来测试,今天捣鼓了半天才把下载的问题解决。网上买的这种下载,居然弄不了哎,算了,用来用串口吧!
触摸没有问题了,目前就是键盘的值后面显示的字符,而且电脑像是一直按住了SHift键一样,鼠标点桌面图标或是keil里面的文档,它都会像作框选............!,即便我断开USB也不能释怀!!!这是什么状况?求解!
最近有个数字键盘的小项目要做,前段时间搜索了一些芯片发现CH549似乎可以单片即可实现。咨询了下价格也非常优秀,就打了块板子回来测试,今天捣鼓了半天才把下载的问题解决。网上买的这种下载,居然弄不了哎,算了,用来用串口吧!
触摸没有问题了,目前就是键盘的值后面显示的字符,而且电脑像是一直按住了SHift键一样,鼠标点桌面图标或是keil里面的文档,它都会像作框选............!,即便我断开USB也不能释怀!!!这是什么状况?求解!
通常键盘在实现shift组合键的时候,shift键本身会作为一个值体现在USB包的首字节,有可能是shift键状态一直没有清除。截图中的代码每次将HIDKey[2]的值清空,没有关注到HIDKey[0]的值当前是否需要清空。
可以在电脑上安装通用的抓包软件比如BUSHOUND、WIRESHARK来对正常键盘抓包,分析一下shift的组合键在数据传输上是怎么实现的,即可对应到单片机代码的行为上。
谢谢!我把HIDKey[0]清空就可以了。
现在又碰到这样一个问题,16个通道,目前只有AIN7这个通道没有反应?不知道除了这里,还有哪里要设定?
初始化打印出来的通道正常也只有14个,有一个显示zYw?不知道为啥?
在线等待中!
算了,自己找着问题了,低级问题,改成16就好了!
整了3块板子,一块正常的,其它两片有这个么个问题,程序是同版,我按一个键,但是输出会带多些字符出来?这是什么情况?
板子上的一个按键是固定的一个值吗?按照你的描述,按一个键一次,不仅出来了多个值,且有不同的值。可以接串口打印监控一下触摸按键的触发次数,是否是触摸按键误触发导致的。USB可以在电脑上装一个BUSHOUND看一下实际包传输是怎么样的,是否完全为代码中填到USB缓冲区中的数据。
有接串口监控看了,只有一个键触发,
用BUSHOUND看了,缓冲区里又确实有其它值,所以在单片机把其它部分给它清一下,目前正常了
但是又有个新问题。关于灵敏度的调节,一直调不出个规律!
每个按建都定义了一下阀值,加了块亚克力板后,灵敏度下降了很多。现在阀值太小了,很多奇奇怪怪的问题出来!
没有亚克力的情况,差值有1000,加上亚克力会衰减那么多!怎么影响那么大?
TouchKey & USB Device demo start ...
CH0:3658 CH1:3538 CH2:3330 CH3:3280 CH4:3254 CH5:3306 CH6:3419 CH7:3506 CH8:3277 CH9:3414 CH10:3511 CH11:3549 CH12:3221 CH13:3341 CH14:3413 CH15:3502
SET CONFIG.
Light on Num Lock LED!
ch 0 pressed,value:2245
ch 0 Release,value:3626
ch 1 pressed,value:2207
ch 1 Release,value:3517
ch 2 pressed,value:2053
ch 2 Release,value:3299
ch 3 pressed,value:2110
ch 3 Release,value:3239
ch 4 pressed,value:1351
ch 4 Release,value:3210
ch 5 pressed,value:2125
ch 5 Release,value:3272
ch 6 pressed,value:2392
ch 6 Release,value:3426
ch 7 pressed,value:2325
ch 7 Release,value:3464
ch 11 pressed,value:2469
ch 10 pressed,value:2276
ch 11 Release,value:3596
ch 10 Release,value:3473
ch 9 pressed,value:2294
ch 9 Release,value:3378
ch 8 pressed,value:2228
ch 8 Release,value:3240
ch 15 pressed,value:1345
ch 15 Release,value:3455
ch 14 pressed,value:2233
ch 14 Release,value:3387
ch 13 pressed,value:2248
ch 13 Release,value:3324
ch 12 pressed,value:2145
ch 12 Release,value:3269
有没有解决方案?
1、保证亚克力板跟弹簧片充分接触,不能有空隙;
2、走线尽可能细和短,尽可能避免过孔;
3、软件上不同通道根据初始值判断赋不同的充电脉宽宽度值,理论上不同通道检测阈值也应根据实际情况微调;
4、对采样的ADC值进行滤波处理,滤除掉明显偏差的值;
你好!
1.亚克力板我与弹簧有螺丝固定,压的很紧。
2.触摸键的走线是0.2mm,中间没有过孔。布局如下.现在测试,右边的那一排的按键感觉更加灵敏,靠IC这边反而不太灵敏。
3.软件已有做了滤波!