打印

关于触摸屏的驱动,请教各位大虾

[复制链接]
1802|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qjmxxgui|  楼主 | 2011-2-1 02:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大虾,我最近调试触摸屏,发现很奇怪的问题,请各位大虾帮忙看一下。。程序运行的结果是:最开始白屏,然后一有触摸,就触发中断,然后就红、蓝、白三色快速交替全屏出现,好像就是一直在中断函数里转,没有跳出到Touch_Adjust()里面的while(1)大循环里。

#include <sys.h>
#include <stm32f10x_lib.h>
#include <SSD1289.h>

#define DIN1 GPIOC->ODR|=(1<<11)
#define DIN0 GPIOC->ODR&=~(1<<11)
#define DOUT GPIOC->ODR&=(1<<10)
#define CS1 GPIOD->ODR|=(1<<2)
#define CS0 GPIOD->ODR&=~(1<<2)
#define CLK1 GPIOC->ODR|=(1<<12)
#define CLK0 GPIOC->ODR&=~(1<<12)

#define PEN  (GPIOC->IDR&(1<<3)) //PC3  中断信号 有触摸时低电平,否则高电平

u8 k=0;

void Touch_Init()
{
RCC->APB2ENR|=1<<4;    //PC时钟使能
RCC->APB2ENR|=1<<0;    //使能io复用时钟
AFIO->MAPR|=(1<<26);   //关闭JTAG-DP,关闭SW-DP
GPIOC->CRL&=0XFFFF0FFF;//PC3输入
GPIOC->CRL|=0X00008000;//PC3上拉输入
GPIOC->ODR|=(1<<3);   //上拉
GPIOC->CRH&=0XFFF000FF;
   GPIOC->CRH|=0X00033800;
GPIOC->ODR|=0X1C00;
GPIOD->CRL&=0XFFFFF0FF;
   GPIOD->CRL|=0X00000300;
GPIOD->ODR|=0X0004;  
AFIO->EXTICR[0]|=0X2000;  //EXTI3映射到PC.3
MY_NVIC_Init(2,0,EXTI3_IRQChannel,2);
EXTI->IMR|=1<<3;        //开启line3上的中断
EXTI->EMR|=1<<3;        //不屏蔽line3上的事件
EXTI->FTSR|=1<<3;       //line3上事件下降沿触发   
}


void EXTI3_IRQHandler(void)
{
EXTI->IMR&=~(1<<3);        //关闭line3上的中断
k++;
if(k==1)
LCD_Clear(RED);//清屏红色  
else if(k==2)
LCD_Clear(BLUE);//清屏蓝色  
else if(k==3)
LCD_Clear(WHITE);//清屏白色  
}


void Touch_Adjust()
{
LCD_Clear(WHITE);//清屏白色   
while(1)
{
if(k==1)
{   
while(PEN == 0);
delay_ms(300);
EXTI->PR=1<<3;        //清除中断标志位
EXTI->IMR|=1<<3;        //开启line3上的中断  
}
else if(k==2)
{
while(PEN == 0);
delay_ms(300);
EXTI->PR=1<<3;         //清除中断标志位
EXTI->IMR|=1<<3;        //开启line3上的中断
}
else if(k==3)
{
while(PEN == 0);
delay_ms(300);
EXTI->PR=1<<3;        //清除中断标志位
EXTI->IMR|=1<<3;        //开启line3上的中断
}
else if(k==4)
{
while(PEN == 0);
delay_ms(300);
EXTI->PR=1<<3;        //清除中断标志位
EXTI->IMR|=1<<3;        //开启line3上的中断
break;
}
}
}


int main()
{
Stm32_Clock_Init(9);  
delay_init(72);
LCD_Init();
Touch_Init();
LCD_Clear(WHITE);
Touch_Adjust();
while(1);
}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

281

帖子

1

粉丝