单片机
返回首页

STM32 移植 STemwin(Touch)

2020-03-15 来源:eefocus

上篇讲到了STemwin的基本移植步骤,这里再讲下Touch的支持。


驱动好自己的触摸屏,准备好测量X,Y 返回为ADC值的函数。这个一般也不难

准备好GUI_TOUCH_X.C文件,这里比较坑的就是这个文件没有包含在STemwin的包里面(至少5.32里面没有),需要自己写一个,其实内容很简单,如下

#include 'GUI.h'

#include 'XPT2046.h'


void GUI_TOUCH_X_ActivateX(void) {

}


void GUI_TOUCH_X_ActivateY(void) {

}


int  GUI_TOUCH_X_MeasureX(void) {

  return XPT2046_READ_X();

}


int  GUI_TOUCH_X_MeasureY(void) {

  return XPT2046_READ_Y();

}


添加好X,Y的测量函数, x,y的Activate函数可以空。


回到LCDConf_FlexColor_Template.c文件中增加触屏的校准函数。

#define TOUCH_AD_LEFT 3930 //触摸左上角x轴的AD值(注意是AD值,也叫物理坐标)

#define TOUCH_AD_RIGHT 166 //触摸屏幕右下角边x轴的AD值

#define TOUCH_AD_TOP 3930  //触摸左上角y轴的AD值

#define TOUCH_AD_BOTTOM 233 //触摸右上角y轴的AD值


void LCD_X_Config(void) {


GUI_DEVICE_CreateAndLink(&GUIDRV_Template_API, GUICC_M565, 0, 0);

LCD_SetSizeEx (0, XSIZE_PHYS , YSIZE_PHYS);

LCD_SetVSizeEx(0, VXSIZE_PHYS, VYSIZE_PHYS);


GUI_TOUCH_Calibrate(GUI_COORD_X, 0, 319, TOUCH_AD_LEFT, TOUCH_AD_RIGHT);

GUI_TOUCH_Calibrate(GUI_COORD_Y, 0, 479, TOUCH_AD_TOP, TOUCH_AD_BOTTOM);


}


4.回到Main.c增加 GUI_TOUCH_Exec()


while (1)

  {

GUI_Delay(10);

GUI_TOUCH_Exec();

  }


好了这样就设置好了,很简单吧。

Enjoy!

在这里插入图片描述

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 红外线探测报警器

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • RS-485基础知识:处理空闲总线条件的两种常见方法

  • 基于ICL296的大电流开关稳压器电源电路

    相关电子头条文章