首页 > 编程知识 正文

tc4428驱动电路图,mcu是什么设备

时间:2023-05-06 15:46:47 阅读:61345 作者:3300

前言:认真编写触摸键相关代码,整理如下。 容易调查。

1 .操作说明1.1时序(数据时钟) TC04B配备串行接口,可与外部设备进行简单的通信。 触摸芯片检测到触摸键被按下后,可以在Data脚输出低电位,启动主机。 主机接收到低电位后,以时钟脚输出时钟信号,从Data脚中读取键值。

在3Clock脚输入低电位,触摸芯片准备数据Clock脚也可以通过轮询直接读取键值,而无需等待Start位。 数据读取错误时,必须等待6ms左右才能再次读取。

1.2键值Clock引脚接收时钟信号后,触摸芯片将生成8位数据字节,并从Data引脚移动。 其中高电位生成读取数据,表示被触摸的键的总数。 例如,校验和为“010”,意味着两个键被触摸。 有关哪个按钮被触摸的信息,可以查看8 个时钟信号位的状态。 bit 3至bit 0用于指示相应的触摸按钮Bit6 ~ Bit4是否被触摸。校验和

bit描述Start bit键的状态发生变化时,Data脚发送低电位,主机启动,主机为键值Bit0Key1的状态(0=键,1=软键) Bit1Key2的状态)0=键,1=软键) bit 2

获取代码说明1字节所需的时钟周期数为8,各时钟周期的高低水平分别占用半个周期,因此获取1个键字节时的Clock引脚整体的变更次数为82=16(times2=16 )2=16偶数半在奇数个半周期中,Clock引脚变为高电平,读取数据。 这种情况下,时钟电平的最小维持时间需要20us,因此无法在输出高电平后立即读取数据。 需要进行一点Bit3 ~ Bit0后读取数据。 取得Data端子等级,Data为0时,键值为1; 如果Data为1,则键值为0。 此外,由于数据是从Key4 ~ Key1传输的,因此在设置了最高密钥后需要若为零则表明相应的按键被触摸,若为 1,则表明相应按键未被触摸。 如果当前半周期是16个半周期中的最后一个,则1字节的数据的读取完成,在这种情况下,需要对bit6 ~ bit4的校验和进行计数,如果检查没有错误,则发送键值。 if(touch_clock ) /初始值为16,半周期计数器(if ) ) touch_clock0x01 )==1) /奇数周期时) { KeySampleBuf[0]=1; Gpio_setbit(clkTC04b_port,CLKTC04B_PIN ); //Clock高电平获取数据延迟时间(20; //20usclockhigh级别的延迟,数据if((dattc04b_port ) dattc04b_pin ) )=0) /密钥值的获取) keysamplebuf(|=0x80; //先发低位,(移位) if ) touch_clock==1) keysamplebuf[0]0x80 )=0) /最后半周期校验键值(if(checkhighnum ) ) ) } } } else //偶数周期时{gpio_resetbit(clkTC04b_port,CLKTC04B_PIN ); //Clock行级获取数据} Touch_Clock--; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。