STemwin移植

STemwin移植STemwin 移植 1 STemwim 简介 emWin 是由德国 SEGGER 公司开发 可为图形 LCD 设计提供高级支持 极大简化了 LCD 设计 为恩智浦 ARM 微控制器用户免费提供的 emWin 图形库 在国内做嵌入式系统的大部分都使用 emwin 其简单来说就是一套图形库 STemWin 是 SEGGER 公司授权给 ST 意法半导体 的 使用 ST 芯片的用户可以免费使用 STemWin 其实不光授权给了 ST 还有 NXP EnergyMicro 等 凡是使用这些芯片厂商生产的处理器都可以免

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

(0)
上一篇 2026年3月19日 下午4:18
下一篇 2026年3月19日 下午4:18


相关推荐

  • 解决卡顿/闪退!C 上位机 YOLO 实时检测优化技巧(入门级)

    解决卡顿/闪退!C 上位机 YOLO 实时检测优化技巧(入门级)

    2026年3月17日
    3
  • STC15单片机最小系统DIY

    STC15单片机最小系统DIYDIY 计划简介 STC15F2K60S2 简介 STC Y5 高速内核 工作频率可配置为 1T sysclk mclk 2KRAM 256 字节 idata 1792 字节 xdata 60KFlashROM2 个 UART1 个 SPI38 个 IO DIP 封装 8 通道 10 位 ADC 工作电压 3 8V 5 5V 工作频率 5MHz 28MHzDIY 所需主要器件

    2026年3月26日
    3
  • ICMP报文类型

    ICMP报文类型日常开发中,我们经常会碰到查询网络是否畅通以及域名对应IP地址等小需求,这时候用的最多的应该就是ping命令了。那你知道ping命令是怎么工作的吗?今天,我们就来一起认识下ping命令及其对应的ICMP协议。ICMP协议ICMP全称InternetControlMessageProtocol,指互联网控制报文协议。网络本身是不可靠的,数据包在传输过程中,可能会发生很多突发事件并导致数据传输失败。而网络层的IP协议是一个无连接的协议,它不会处理网络层的故障,因此,我

    2022年4月30日
    52
  • 机器学习中的F1-score

    机器学习中的F1-score一、什么是F1-scoreF1分数(F1-score)是分类问题的一个衡量指标。一些多分类问题的机器学习竞赛,常常将F1-score作为最终测评的方法。它是精确率和召回率的调和平均数,最大为1,最小为0。此外还有F2分数和F0.5分数。F1分数认为召回率和精确率同等重要,F2分数认为召回率的重要程度是精确率的2倍,而F0.5分数认为召回率的重要程度是精确率的一半。计算公式为:G…

    2022年10月15日
    4
  • c语言学生成绩管理系统总结

    c语言学生成绩管理系统总结一、系统功能1.基本功能1.录入信息2.按照学号查找信息3.按照学号修改信息4.按照学号删除信息5.插入信息6.浏览全部信息7.按c语言成绩排序8.保存到文件2.结构体typedefstructstudent{ charnum[20];//学号 charname[10];//姓名 charsex[10];//性别 charduty[10];//专业 inteng;//英语成绩 intmath;

    2022年6月20日
    21
  • Arduino文档阅读笔记-RFID工作原理及RC522模块介绍

    RFID工作原理RFID(RadioFrequencyIdentification):无线射频识别RFID由2个部分组成:应答器/标签被贴在某个物体上的东东。无线接收器用于读取应答器/标签上的数据。读卡器由频射模块及高平磁场组成。Tag/应答器为待感应设备,此设备不包含电池。他只包含微型集成电路芯片及存储数据的介质以及接收和发送信号的天线。读取tag中的数据,首先要放…

    2022年4月8日
    88

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号