OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9076|回复: 3

触摸屏卡死问题

[复制链接]

8

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2011-11-6
在线时间
0 小时
发表于 2012-4-26 22:25:03 | 显示全部楼层 |阅读模式
 

void EXTI15_10_IRQHandler(void)
{         
//先开始初始化IO口
    RCC->APB2ENR|=1<<2;    //PA时钟使能
 RCC->APB2ENR|=1<<0;    //开启辅助时钟
 RCC->APB2ENR&=~(1<<12);      //SPI1时钟失能        
 GPIOA->CRL&=0X0F00FFFF;//PA457
 GPIOA->CRL|=0X30330000;//
 GPIOA->CRL&=0XF0FFFFFF;//PA6
 GPIOA->CRL|=0X08000000;//
 GPIOA->ODR|=0XF0;
//中断处理
 
 Convert_Pos();
 printf("x is %d",Pen_Point.X0);
    printf("y is %d",Pen_Point.Y0);
    if(Pen_Point.X0>=70-16&&en_Point.X0<=70+16&&en_Point.Y0>=270-16&&en_Point.Y0<=270+16)flag='L';
 if(Pen_Point.X0>=120-16&&en_Point.X0<=120+16&&en_Point.Y0>=270-16&&en_Point.Y0<=270+16)flag='P';
 if(Pen_Point.X0>=170-16&&en_Point.X0<=170+16&&en_Point.Y0>=270-16&&en_Point.Y0<=270+16)flag='R';
 if(Pen_Point.X0>=20-10&&en_Point.X0<=20+10&&Pen_Point.Y0>=40-10&&Pen_Point.Y0<=40+10)flag='+';
 if(Pen_Point.X0>=20-10&&Pen_Point.X0<=20+10&&Pen_Point.Y0>=85-10&&Pen_Point.Y0<=85+10)flag='-';
 
 delay_ms(400); //相当于消钭
 //恢复端口设置
 RCC->APB2ENR|=1<<2;       //PORTA时钟使能  
    RCC->APB2ENR|=1<<12;      //SPI1时钟使能
    GPIOA->CRL&=0X000FFFFF;
    GPIOA->CRL|=0XBBB00000;//PA5.6.7复用     
    GPIOA->ODR|=0X7<<5;    //PA5.6.7上拉
 SPI1->CR1|=1<<6; //SPI设备使能
 
 RCC->APB2ENR|=1<<3;//先使能外设IO PORTB时钟        
 GPIOB->CRL&=0X00FFFFFF;//PB6/7 推挽输出
 GPIOB->CRL|=0X33000000;   
 GPIOB->ODR|=3<<6;     //PB6,7 输出高
            
 EXTI->PR=1<<13;  //清除LINE1上的中断标志位

}
以上代码基本思路是:进入中断后,首先关闭spi(触摸屏占用spi口但不用spi通信,所以要先关闭,避免影响,然后在出中断前在使能spi),然后判断位置,根据不同位置
写不同的flag,出中断前使能spi。
现在问题是:触摸的时候经常会卡死,就是触摸要很有技术(一点就要放开就没事)

各位高手解答一下啊

在线等

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-4-26 23:10:44 | 显示全部楼层
回复【楼主位】楼兰开花:
---------------------------------
你在中断里面放这么多代码干嘛?不是等死嘛....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2011-11-6
在线时间
0 小时
 楼主| 发表于 2012-4-26 23:56:36 | 显示全部楼层
为什么中断里不能放那么多代码,有什么问题?
回复 支持 反对

使用道具 举报

8

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2011-11-6
在线时间
0 小时
 楼主| 发表于 2012-4-26 23:58:37 | 显示全部楼层
触摸屏这东西要不要消抖的?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 17:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表