STM32F4应用笔记(四)UCGUI裸机移植——支持触摸屏
来源:互联网 发布:网络摄像头怎么安装 编辑:程序博客网 时间:2024/06/09 10:57
1、移植的基准
这一次是以正点原子F4开发板的触摸屏实验作为基准。
我们在前一篇博客建立的工程的基础上。把触摸屏实验Hardware之中的相应的文件夹添加到工程中。
2、在GUI_X添加文件GUI_X_Touch.c
这一次支持触摸屏,所以需要添加GUI_X_Touch.c。
2.1修改GUI_X_Touch.c文件
在GUI_X_Touch.c中添加预处理命令#include “touch.h”。
然后将其中的GUI_TOUCH_X_MeasureX
和GUI_TOUCH_X_MeasureY两个函数改为如下所示的形式:
int GUI_TOUCH_X_MeasureX(void) {
tp_dev.scan(0);//扫描
return tp_dev.x[0];
}
int GUI_TOUCH_X_MeasureY(void) {
tp_dev.scan(0);//扫描
return tp_dev.y[0];
}
3、修改GUIConf.h文件
打开工程文件Config文件夹中的GUIConf.h文件,将其中的GUI_SUPPORT_TOUCH和GUI_WINSUPPORT总开关打开。
#define GUI_SUPPORT_TOUCH (1) #define GUI_WINSUPPORT 1
4、修改GUITouchConf.h文件
打开工程文件Config文件夹中GUITouchConf.h文件,因为我们采用4.3英寸(480*800)显示屏竖屏显示,所以改为:
#define GUI_TOUCH_AD_LEFT 0 //坐标值#define GUI_TOUCH_AD_RIGHT 480 //#define GUI_TOUCH_AD_TOP 0 //#define GUI_TOUCH_AD_BOTTOM 800 //#define GUI_TOUCH_SWAP_XY 0#define GUI_TOUCH_MIRROR_X 0#define GUI_TOUCH_MIRROR_Y 0
5、修改LCDConf.h
修改LCD的尺寸,看你用多大的。
#define LCD_XSIZE (480) #define LCD_YSIZE (800)
6、修改主函数
#include "sys.h"#include "delay.h" #include "usart.h" #include "led.h"#include "lcd.h"#include "ili93xx.h" #include "touch.h"#include "gui.h"#include "timer.h" int main(void) { Stm32_Clock_Init(336,8,2,7);//设置时钟,168Mhz delay_init(168); //延时初始化 uart_init(84,115200); //初始化串口波特率为115200 LED_Init(); //LED端口初始化 LCD_hard_Init(); TP_Init(); //触摸屏初始化 TIM3_Int_Init(100-1,8400-1);//10Khz的计数频率,计数100次为10ms GUI_Init(); GUI_SetBkColor(GUI_BLUE);//设置背景色 GUI_SetColor(GUI_WHITE); GUI_Clear(); GUI_SetFont(&GUI_Font24_ASCII); GUI_DispStringAt("- - STM32F- -",4,10); GUI_DispStringAt("- - UCGUI3.98 - -",4,40); GUI_DispStringAt("- - SUCCESSFULLY - -",4,70); delay_ms(2000);// 延时2s GUI_Clear(); GUI_CURSOR_Show(); while(1) { LED0=!LED0; delay_ms(100); }}
7、修改timer函数
这个实验用到了,定时器3,定时器3的中断服务程序如下:
//定时器3中断服务程序 void TIM3_IRQHandler(void){ static u8 j=0; j++; if(TIM3->SR&0X0001)//溢出中断 { LED1=!LED1; GUI_TOUCH_Exec(); GUI_Exec();//GUI事件更新 if(j>=50) { LED1=!LED1; j=0; } }
GUI_TOUCH_Exec();是用来获取触摸屏状态的。
8、最终实现效果
首先显示几行字,2s之后,触摸屏上出现一个鼠标指针,然后会随着手指的移动而移动。
- STM32F4应用笔记(四)UCGUI裸机移植——支持触摸屏
- STM32F4应用笔记(三)UCGUI裸机移植——不支持触摸屏
- STM32F4应用笔记(六)UCGUI+uC/OS-II+支持触摸屏——触屏计算器
- STM32F4应用笔记(五)UCGUI+uC/OS-II+支持触摸屏
- stm32f4移植ucgui
- 移植UCGUI 调试笔记
- 在STM32上移植ucGUI之触摸屏
- 裸机系列——s3c2440之触摸屏
- ARM裸机程序设计—触摸屏程序设计
- STM32学习——uCGUI移植
- STM32学习——uCGUI移植
- ucgui 移植(裸奔)
- STemWin 裸机移植笔记
- STM32F4学习(四)——Usart+DMA
- 【笔记】mini2440触摸屏驱动移植(二)
- ucgui移植(基于windml)
- ucgui移植(基于windml)
- ucgui移植LPC2478(二)
- git不同仓库不同账户解决方法
- 利用filter过滤器实现整个服务器对中文的支持
- 最近使用redis的总结
- liunx 安装mysql5.7.17
- 自定义滑动交互的圆形ProgressBar
- STM32F4应用笔记(四)UCGUI裸机移植——支持触摸屏
- git一个本地仓库提交到2个账户仓库
- C# asp.net中四种文件下载方法
- JNI开发之JNI常见错误
- 用kotlin方式打开《第一行代码:Android》
- 第23章 常见信号付氏变换及应用举例
- PhotoShop 导出多个图层
- 【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法
- filter原理