01 | #include "stm32f10x_it.h" |
02 | #include "xpt2046.h" |
03 |
04 | //中断,检测到PEN脚的一个下降沿. |
05 | //置位Pen_Point.Key_Sta为按下状态 |
06 | //中断线0线上的中断检测 |
07 | void EXTI1_IRQHandler(void) |
08 | { |
09 | Pen_Point.Key_Sta=Key_Down;//按键按下 |
10 |
11 |
12 | EXTI->PR = 1<<1; //清除中断标志位 使用库函数会出现问题,原因不详 |
13 | //EXTI_ClearITPendingBit(EXTI_Line1); //这两句清除中断顺序不能颠倒 |
14 | //EXTI_ClearFlag(EXTI_Line1);//清除LINE1上的中断标志位 |
15 | } |
01 | int main(void) |
02 | { |
03 | //stm32 初始化 |
04 | RCC_Configuration(); |
05 | NVIC_Configuration(); |
06 | USART_Configuration(); |
07 | SPI_Configuration(); |
08 | EXTI_Configuration(); |
09 | GPIO_Configuration(); |
10 |
11 | LCD_Init(); |
12 | Touch_Init(); |
13 |
14 | POINT_COLOR = BLACK; //设置字体颜色 |
15 |
16 |
17 | Delay(100000); |
18 |
19 | LCD_ShowString(180,0,"Click");//显示"Click"字符按钮 |
20 |
21 | while(1){ |
22 | if(Pen_Point.Key_Sta==Key_Down)//触摸屏被按下 |
23 | { |
24 | Pen_Int_Set(0);//关闭中断 |
25 | do |
26 | { |
27 | Convert_Pos(); |
28 | Pen_Point.Key_Sta=Key_Up; |
29 |
30 | if(Pen_Point.X0>180&&Pen_Point.Y0<16) //判定按下的是否是 "Click"字符按钮区域 |
31 | { |
32 | LCD_Clear(WHITE); |
33 | LCD_ShowString(30,50,"Hello Dog .. "); |
34 | } |
35 | }while(TOUCH_PEN==0);//如果PEN一直有效,则一直执行 |
36 | Pen_Int_Set(1);//开启中断 |
37 | } |
38 | } |
39 |
40 | } |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |