标题:
FT6336UA触摸单片机驱动源程序
[打印本页]
作者:
axent025419
时间:
2019-5-21 14:53
标题:
FT6336UA触摸单片机驱动源程序
FT6336UA触摸驱动用于FT6336触摸芯片软件调试参考
0.png
(4.81 KB, 下载次数: 125)
下载附件
2019-5-22 04:37 上传
单片机源程序如下:
#include "FT6336.h"
#include "lcd.h"
#include "delay.h"
#include "tp_iic.h"
//---------------------------------------------------------------------------------------------------
//#define LED_EN PBout(12)//RST信号
void FT6336_init(void)
{
CT_IIC_Init();
}
u8 FT6336_read_firmware_id(void)
{
return CT_IIC_read_addr_byte(I2C_ADDR_FT6336,FT6336_ADDR_FIRMARE_ID);
}
u8 FT6336_read_device_mode(void)
{
return CT_IIC_read_addr_byte(I2C_ADDR_FT6336,FT6336_ADDR_DEVICE_MODE);
}
u8 FT6336_read_td_status(void)
{
return CT_IIC_read_addr_byte(I2C_ADDR_FT6336,FT6336_ADDR_TD_STATUS);
}
//第一触点
u8 FT6336_read_touch1_event(void)
{
return CT_IIC_read_addr_byte(I2C_ADDR_FT6336,FT6336_ADDR_TOUCH1_EVENT)>>4;
}
u8 FT6336_read_touch1_id(void)
{
return CT_IIC_read_addr_byte(I2C_ADDR_FT6336,FT6336_ADDR_TOUCH1_ID)>>4;
}
//左下角为坐标零点,水平Y轴,垂直X轴
//Y轴范围0~479
//X轴范围0~479
//touch1和touch2排列顺序为按面积排列,而ID号为按下的时间先后标号,该标号可代表按下的手指
//在第一点按下后ID记为0,事件为8,而抬起后ID与坐标保持最后数值,事件为4,此时第二个点数据一直为FF
//在第一点按下前提下按第二个点,ID记为1,事件为8,抬起后全恢复FF,而当第二个点的接触面积大于第一个点时,
//它将保持ID与坐标前提下与第一个点更换存储地址,第一个点抬起后,第二个点的依旧ID为1
//按下第三个点时,将与其它两个点进行面积对比后,直接抛弃面积最小的点
u16 FT6336_read_touch1_x(void)
{
u8 read_buf[2];
CT_IIC_read_addr_str(I2C_ADDR_FT6336,FT6336_ADDR_TOUCH1_X,2,read_buf);
return ((read_buf[0]&0x0f)<<8)|read_buf[1];
}
u16 FT6336_read_touch1_y(void)
{
u8 read_buf[2];
CT_IIC_read_addr_str(I2C_ADDR_FT6336,FT6336_ADDR_TOUCH1_Y,2,read_buf);
return ((read_buf[0]&0x0f)<<8)|read_buf[1];
}
//第二触点
u8 FT6336_read_touch2_event(void)
{
return CT_IIC_read_addr_byte(I2C_ADDR_FT6336,FT6336_ADDR_TOUCH2_EVENT)>>4;
}
u8 FT6336_read_touch2_id(void)
{
return CT_IIC_read_addr_byte(I2C_ADDR_FT6336,FT6336_ADDR_TOUCH2_ID)>>4;
}
u16 FT6336_read_touch2_x(void)
{
u8 read_buf[2];
CT_IIC_read_addr_str(I2C_ADDR_FT6336,FT6336_ADDR_TOUCH2_X,2,read_buf);
return ((read_buf[0]&0x0f)<<8)|read_buf[1];
}
u16 FT6336_read_touch2_y(void)
{
u8 read_buf[2];
CT_IIC_read_addr_str(I2C_ADDR_FT6336,FT6336_ADDR_TOUCH2_Y,2,read_buf);
return ((read_buf[0]&0x0f)<<8)|read_buf[1];
}
复制代码
#ifndef __FT6336_H
#define __FT6336_H
#include "sys.h"
#define LED_EN PBout(12)
#define I2C_ADDR_FT6336 0x38
#define FT6336_ADDR_DEVICE_MODE 0x00
#define FT6336_ADDR_TD_STATUS 0x02
#define FT6336_ADDR_TOUCH1_EVENT 0x03
#define FT6336_ADDR_TOUCH1_ID 0x05
#define FT6336_ADDR_TOUCH1_X 0x03
#define FT6336_ADDR_TOUCH1_Y 0x05
#define FT6336_ADDR_TOUCH2_EVENT 0x09
#define FT6336_ADDR_TOUCH2_ID 0x0B
#define FT6336_ADDR_TOUCH2_X 0x09
#define FT6336_ADDR_TOUCH2_Y 0x0B
#define FT6336_ADDR_FIRMARE_ID 0xA6
void FT6336_init(void);
u8 FT6336_read_firmware_id(void);
u8 FT6336_read_device_mode(void);
u8 FT6336_read_td_status(void);
u16 FT6336_read_touch1_x(void);
u16 FT6336_read_touch1_y(void);
u8 FT6336_read_touch1_event(void);
u8 FT6336_read_touch1_id(void);
u8 FT6336_read_touch2_event(void);
u8 FT6336_read_touch2_id(void);
u16 FT6336_read_touch2_x(void);
u16 FT6336_read_touch2_y(void);
#endif
复制代码
作者:
susamg
时间:
2019-7-1 15:13
看看,应该有用
作者:
Micmiko
时间:
2019-9-18 22:04
可以,挺有用的
作者:
sunnysmile
时间:
2019-12-24 11:58
过来学习一下,找了很多地方都找不到对应的源代码
作者:
tyc507-123456
时间:
2020-6-22 13:08
我正在找这个驱动呢
作者:
wubingbing
时间:
2020-7-15 10:43
我也正在找这个驱动,有没有工程参考
作者:
zh_tao518
时间:
2020-10-28 17:59
多谢楼主分享,可以下载吗?
作者:
hjjttf
时间:
2021-5-19 15:35
mark一下,有分以后下载
作者:
出现6666
时间:
2021-7-17 11:41
下载下来看看,希望有用。
作者:
mcu51
时间:
2021-10-16 18:15
有用的资料,下载下来看看
作者:
坟头霸主
时间:
2022-5-12 16:29
下载看看或许用得到
作者:
zeehom
时间:
2022-11-4 09:31
我是敦泰的需要FAE支持的话这边可以安排哦
作者:
bacher
时间:
2022-11-15 00:01
zeehom 发表于 2022-11-4 09:31
我是敦泰的需要FAE支持的话这边可以安排哦
您好,我们最近在进行显示屏相关研究,目前想用FT6336这款片子,能否获取FAE支持?
作者:
jen51h
时间:
2023-11-13 11:48
zeehom 发表于 2022-11-4 09:31
我是敦泰的需要FAE支持的话这边可以安排哦
你好, 我们想要一个 敦泰的触摸板方案
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1