xpt2046.h下载的输入是哪个引脚

查看: 843|回复: 0
TSC2046 以及XPT2046 的PEN引脚有中断触发的时候 只有 0.4~0.6V的电压跳变
主题帖子精华
中级会员, 积分 406, 距离下一级还需 94 积分
在线时间2 小时
之前 跳变都正常 直接有 3.3V的跳变 现在只有零点几伏的电压跳变 所以中断 一直不响应 硬件上可能出现哪些问题
刚才又检查了下 发现 PEN引脚 居然不能用IO口 函数 GPIO_Resset(GPIOD, GPIO_Pin_6);函数直接拉低&
另外 PEN引脚直接连接的MCU的92引脚 而且是 通的 万用表打过 PEN引脚 没有接到 电源引脚上面 但是一直持续为高 而且电压保持在3.3V 显然是有外部的持续高电平
这又是怎么回事
闷鱼闷闷不乐吃焖鱼
Powered by这两个芯片稍有不同, 我还没写出来, 芯片数据手册上面写了的, 请参考~我的彩屏的大小是240*320~以下是代码
//common.h
#ifndef __COMMON_H__
#define __COMMON_H__
#include &reg52.h&
#include &intrins.h&
typedef unsigned int uint;
typedef unsigned char
#endif// !__COMMON_H__
//TouchPad.c
#define __TOUCHPAD_C__
#include "TouchPad.h"
//我的屏幕接口
//#include "gdi.h"
sbit TP_CLK = P1^4; //时钟
sbit TP_CS = P1^5;
sbit TP_IN = P1^6;
//数据输入
//sbit TP_BUSY = P1^3;
//我没有使用忙碌标志
sbit TP_OUT = P1^7; //数据输出
sbit TP_IRQ = P3^2; //通过INT0通知MCU
* 函数:检测触摸屏是否处于中断中,在中断中调用检测
* 参数:(无)
* 返回:0-没有,非0:触摸屏被按下
uchar tp_isirq(void)
return !(uchar)TP_IRQ;
//开启外部中断1,通过外部中断通知MCU
void tp_init(void)
TP_CS = 1;
TP_CLK = 1;
TP_IN = 1;
TP_CLK = 1;
/* 函数:SPI方式写一个字节
* 参数:ch:uchar:字节值
* 返回:(无)
void tp_write(uchar ch)
TP_CLK = 0;
for(k=0; k&8; k++){
TP_IN = CY;
TP_CLK = 0;
TP_CLK = 1;
* 函数:SPI方式读函数
* 参数:(无)
* 返回值:12位有效数据
uint tp_read(void)
uint ret = 0;
for(k=0; k&12; k++){
ret &&= 1;
TP_CLK = 1;
TP_CLK = 0;
if(TP_OUT)
* 函数:取得X,Y的坐标,但没有比较采样
* 参数:struct tp_point 的结构体指针
* 返回:(无)
* 注释:外部不要调用, 有误差
void tp_get_pt(struct tp_point* pt)
TP_CS = 0;
tp_write(0x90);//读取Y
TP_CLK = 1;
TP_CLK = 0;
pt-&y = tp_read();
tp_write(0xd0);//读取X
TP_CLK = 1;
TP_CLK = 0;
pt-&x = tp_read();
TP_CS = 1;
* 函数:取得触摸屏坐标函数
* 参数: int型的x,y的指针
返回0-采样失败
返回非0-有效采样
int tp_get(int* px, int* py)
struct tp_point pt1;
struct tp_point pt2;
//两次取值并采样
tp_get_pt(&pt1);
tp_get_pt(&pt2);
x = pt1.x-pt2.x;
y = pt1.y-pt2.y;
//误差不是很大则有效
if(x&2 && y&2)
//这个计算还不清楚,资料上的
*px = 240-(pt1.x-330)*10/142;
*py = 320-(pt1.y-380)/11;
//TouchPad.h
文件:TouchPad.h
描述:触摸屏相关支持文件
作者:女孩不哭
文本:ts=4, sw=4, sts=4
#ifndef __TOUCHPAD_H__
#define __TOUCHPAD_H__
#include "common.h"
//common.h
#include &reg52.h&
int tp_get(int* px, int* py);
//获取当前坐标点, 返回值不为零为有效
void tp_init(void);
//触摸屏初始化函数
uchar tp_isirq(void);
//判断触摸屏是否依然在中断中
#ifdef __TOUCHPAD_C__
//内部结构,函数
struct tp_point{
void tp_get_pt(struct tp_point* pt);
uint tp_read(void);
void tp_write(uchar ch);
#undef __TOUCHPAD_C__
#endif // !__TOUCHPAD_H__
//示例使用方法
#include "common.h"
#include "TouchPad.h"
//触摸屏通过外部中断0方式通知MCU进行采样
//应该写在主模块中
void int0(void) interrupt 0
int x=0,y=0;
if(tp_isirq()){
if(!tp_get(&x, &y))
//x,y是取得的坐标
//set_pixel是我的屏幕画点的函数
//改成自己的使用方法
//set_pixel(x,y, 0xaaaa);
//set_pixel(x+1,y, 0xaaaa);
//set_pixel(x,y+1, 0xaaaa);
//set_pixel(x+1,y+1, 0xaaaa);
void main(void)
//delay_ms(200);//自己实现
tp_init();
女孩不哭(QQ:)@ 14:40:46
阅读(...) 评论()模数转换器xpt2046的DIN引脚的设置问题
[问题点数:20分,结帖人u]
模数转换器xpt2046的DIN引脚的设置问题
[问题点数:20分,结帖人u]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。}

我要回帖

更多关于 xpt2046中文资料 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信