一、布线原则:

1、触摸走线尽量短,多个触摸走线尽量保证走线长度一致,这样可以保证灵敏度基本一致,如果走线长度差距过大,就有可能超越了软件可调节灵敏度的范围,导致灵敏度不一致,使用效果不佳;

2、触摸走线建议使用地线包裹,走线与地的间距在0.5mm以上;另外,如果触摸线过长,建议走线与地的间距在1mm以上;

3、触摸走线尽量不要与其他线并行走线或交叉,如果客观原因必须并行走线,则相邻触摸走线并行间距要在0.5mm以上,且尽量简短并行走线的距离;

4、触摸走线的周围适当打几个GND过孔,减少寄生电容对触摸走线的影响;

5、触摸焊盘可以是任意形状(原则上最好使用规则形状),大小在8*8-15*15之间;

6、触摸按键底部不要放置元器件与走线。

二、软件调试:

1、JTW6C12上电初始化时间约为25ms,因此在JTW6C12上电后,需要等待25ms以上时间后,再与其通信;

2、规格书中给出的例程,在读取数据时与标准的IIC时序有区别,实测发现使用标准IIC时序可以与jtw6c12正常通信

三、例程:

(注:例程使用的IC为nrf52840,实测正常,具体按键灵敏度需根据实际项目调整)

1、jtw6c12.h文件

#ifndef _JTW6C12_H_ #define _JTW6C12_H_

#include "nrf_gpio.h"

#define TTP_SCK_PIN NRF_GPIO_PIN_MAP(1,9) #define TTP_SDA_PIN NRF_GPIO_PIN_MAP(1,8) #define TTP_INT_PIN 8

#define TTP_INT_Read() nrf_gpio_pin_read(TTP_INT_PIN)

#define JTW6C12_ADDR 0x50 #define W_ADDR 0xA0 #define R_ADDR 0xA1

void Jtw6c12Init(void); bool TTP_ReadKey(uint8_t *key);

#endif

2、jtw6c12.c文件

#include "jtw6c12.h" #include #include #include #include "nrf_drv_twi.h" #include "nrf_gpio.h" #include "nrf_delay.h" #include "nrf_log.h" #include "nrf_log_ctrl.h" #include "nrf_log_default_backends.h"

static uint8_t d_u8Buf[4]; //TWI驱动程序实例ID,ID和外设编号对应,0:TWI0 1:TWI1 #define TWI_INSTANCE_ID 0

//TWI传输完成标志 static volatile bool m_xfer_done = false; //定义TWI驱动程序实例,名称为m_twi static const nrf_drv_twi_t m_twi = NRF_DRV_TWI_INSTANCE(TWI_INSTANCE_ID);

//TWI事件处理函数 void twi_handler(nrf_drv_twi_evt_t const * p_event, void * p_context) {

//判断TWI事件类型 switch (p_event->type){

//传输完成事件 case NRF_DRV_TWI_EVT_DONE: m_xfer_done = true;//置位传输完成标志 break; default: break; } }

//TWI初始化 void twi_master_init(void) {

ret_code_t err_co

Copyright © 2088 世界杯欧洲区_世界杯中国 - rd508.com All Rights Reserved.
友情链接