STemwin移植
1.STemwim简介
2 STemwin下载
3 移植STemwin
4 修改配置相关配置文件
// 创建显示驱动器件 GUI_DEVICE_CreateAndLink(&GUIDRV_Template_API, GUICC_565, 0, 0); LCD_SetSizeEx (0, XSIZE_PHYS , YSIZE_PHYS); LCD_SetVSizeEx(0, VXSIZE_PHYS, VYSIZE_PHYS); //设置触摸屏校准参加 GUI_TOUCH_Calibrate(GUI_COORD_X,0,319,0,319); GUI_TOUCH_Calibrate(GUI_COORD_Y,0,479,0,479);
#include "xpt2046.h" //激活X轴测量参考emWIN5.12中文手册第767页。 void GUI_TOUCH_X_ActivateX(void){
} //激活Y轴测量 void GUI_TOUCH_X_ActivateY(void){
} /*获取X轴的坐标值*/ int GUI_TOUCH_X_MeasureX(void){
XPT2046_Getxy(); return touch_info.x; } /*获取Y轴坐标值*/ int GUI_TOUCH_X_MeasureY(void){
XPT2046_Getxy(); return touch_info.y; }
TIMx_Init(TIM7,72,1000);//1ms,用来给STemwint延时函数使用 TIM7->CR1|=1<<0;//开启定时器 /TIM7中断服务函数*/ #include "GUI.h" extern volatile GUI_TIMER_TIME OS_TimeMS; void TIM7_IRQHandler(void) {
static u8 cnt=0; if(TIM7->SR&1<<0) {
cnt++; if(cnt>=10) {
GUI_TOUCH_Exec();//检测触摸屏是否按下函数 cnt=0; } OS_TimeMS++; } TIM7->SR=0;//清除标志 }
5 初始化STemwin
STemWin是SEGGER公司授权给ST(意法半导体)的。使用STemWin需要对芯片校验判断是否为ST公司芯片。
#include "gui.h" //int a __attribute__((at(0x)));//指定变量a地址为0x int main() {
u16 time=0; GUI_PID_STATE pState; Beep_Init(); Led_Init(); Key_Init(); Usartx_Init(USART1,,72); TIMx_Init(TIM2,72,20*1000); IIC_Init(); W25Q64_Init(); Sram_Init(); printf("初始化完成\r\n"); NT35310_Init(); XPT2046_Init(); XPT2046_Calibration2(); TIMx_Init(TIM7,72,1000);//1ms,用来给STemwint延时函数使用 TIM7->CR1|=1<<0;//开启定时器 RCC->AHBENR|=1<<6;//开启CRC时钟 GUI_Init();//STemwin初始化 LCD_Clear(DARKBLUE);//设置背景为白色 printf("STEMWIN初始化完成\r\n"); while(1) {
GUI_TOUCH_GetState(&pState);//获取触摸屏状态 if(pState.Pressed) {
GUI_CURSOR_SetPosition(pState.x,pState.y);//设置坐标位置 GUI_CURSOR_Show();//显示光标 } Delay_Ms(1); time++; if(time>=500) {
LED1=!LED1; time=0; } } }
光标设置参考emWIN5.12中文手册第784页。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206170.html原文链接:https://javaforall.net
