CH554触摸按键TIN0,TIN1正常,TIN2,3只有第一次触摸有效后面无反应是啥情况
UINT8 TK_Measure( void )
{
	UINT8 	i,j,num;
	UINT16	err;
	UINT16 	sum;
	UINT16 	OverTime;
	
	for ( i = 0; i < TOUCH_NUM; i++ )
	{
		sum = 0;
		j = SAMPLE_TIMES;
		TK_SelectChannel( i );
        num = TK_Code[i] - 1;
		while( j-- )
		{
			OverTime = 0;
			while( ( TKEY_CTRL & bTKC_IF ) == 0 )
			{
				if( ++OverTime == 0 )
				{
					return FAIL;
				}
			}
			sum += TKEY_DAT;												
		}
		Key_DataBuf[i] = sum / SAMPLE_TIMES;
		err =  ABS(Key_FreeBuf[i],Key_DataBuf[i]);
		 if( err > DOWM_THRESHOLD_VALUE )   
		 {
			 if((Press_Flag & (1<


仅以示例程序代码观察打印的话,可能还会涉及到不同PCB线路设计差异,导致按下阈值差异。

#define   DOWM_THRESHOLD_VALUE          2000                      //按下阈值定义
#define   UP_THRESHOLD_VALUE            500                        //抬起阈值


上述函数可以在每次循环监控“TKEY_DAT”寄存器的值,将其打印出来,看实际的数值返回。



那TIN2,3第一次按下LED亮后续按下不亮是什么原因呢,四个通道都启用了


您好,加打印检查一下是否确实由设置的阈值判断为按键按下。同时可以设置标志位,用标志位的方式去控制LED灯,保证确实是由按键按下行为控制的LED灯,确保引脚不被其他外设复用。


只有登录才能回复,可以选择微信账号登录