一直想利用所学的东西自己设计一个精致一些的作品,手头正好有一块红牛开发板,就先用它来写一些软件,熟悉一下过程和一些想法的可行性。首先当然是选择一个操作系统了,对比了几种之后选择了emWin。那就移植一下吧。

这里首先要感谢一下http://www.openedv.com/posts/list/0/27697.htm 这篇帖子。我的思路基本是照着这个帖子做的。感谢楼主把辛苦的研究成果贡献出来,让我这个菜鸟能够快些入门。

STemWin下载地址: http://www.st.com/web/en/catalog/tools/PF259225#

在ST官方网站上下载好STemWin后 解压 先使用Libraries文件夹下的STemWinLibrary522 文件夹 复制到项目工程文件夹里

然后添加下列文件到工程

修改 LCDConf_FlexColor_Template.c

添加 #include "ili9320.h" 在此之前需要将所使用的液晶屏底层驱动程序写好。横竖屏取决于底层的驱动。

注意下面的函数,写指令和写数据一般都在液晶驱动的底层有定义,直接添加进来就行了。

static void LcdWriteReg(U16 Data)
{
// ... TBD by user
LCD->LCD_REG = Data;
} static void LcdWriteData(U16 Data)
{
// ... TBD by user
LCD->LCD_RAM = Data;
} static void LcdWriteDataMultiple(U16 * pData, int NumItems)
{
while (NumItems--)
{
// ... TBD by user
LCD->LCD_RAM = *pData++;
}
} static void LcdReadDataMultiple(U16 * pData, int NumItems)
{
*pData = LCD->LCD_RAM;
while (NumItems--)
{
// ... TBD by user
*pData++ = LCD->LCD_RAM;
}
}

修改完成后就是建立了emWin与液晶屏的联系

关于 void LCD_X_Config(void) 函数 (这个我会总结一下后补)续....

然后测试GUI显示是否正常

我用的是ST官网最新的库函数写的程序,包括液晶屏的驱动函数都是官方的,所以感觉操作起来要方便一些

主函数内写如下代码:

SystemInit();
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC,ENABLE);
LCD_X_Init();
ili9320_Initializtion();
GUI_Init();
GUI_SetColor(GUI_YELLOW);
GUI_DispStringAt("emWin5.22 GUI Complete",,);
while();

注意液晶的初始化不要忘了

这样我在红牛开发板上就可以正常显示了(液晶驱动是ILI9320)

然后可以利用GUI.h里面的各种函数显示想要的东西

具体函数的功能以及如何使用参照emWin用户手册上面有详细的解释。

下面是几个API函数在手册里面可以查找

数值API:

文本API:

到此为止我们就完成了初步的液晶底层移植。接下来移植一下演示程序。

emWin 移植 - 基于红牛开发板的更多相关文章

  1. 【原创】车载实时路况信息接收终端移植于Smart210开发板 --- 综合教程

    [原创]车载实时路况信息接收终端移植于Smart210开发板 --- 综合教程 所用工具: windows电脑 Ubuntu12.04 Smart210开发板 4g以上SD卡 U盘 步骤: 1.    ...

  2. linux 3.4.103 内核移植到 S3C6410 开发板 移植失败 (问题总结,日本再战!)

    linux 3.4.103 内核移植到 S3C6410 开发板 这个星期差点儿就搭在这里面了,一開始感觉非常不值得,移植这样的浪费时间的事情.想立刻搞定,然后安安静静看书 & coding. ...

  3. 基于uFUN开发板和扩展板的联网校准时钟

    项目概述 上周在uFUN试用群里看到管理员说试用活动快结束了,要抓紧完成评测总结,看大家的评测总结也都写了,我也不能落后啊!正好最近做的扩展板到手了,于是赶紧进行调试,做了一个不用校准的时钟,时钟这种 ...

  4. 基于uFUN开发板的RGB调色板

    前言 使用uFUN开发板配合Qt上位机,实现任意颜色的混合,Qt上位机下发RGB数值,范围0-255,uFUN开发板进行解析,然后输出不同占空比的PWM,从而实现通过RGB三原色调制出任意颜色. Qt ...

  5. 基于uFUN开发板的心率计(三)Qt上位机的实现

    前言 上两周利用周末的时间,分别写了基于uFUN开发板的心率计(一)DMA方式获取传感器数据和基于uFUN开发板的心率计(二)动态阈值算法获取心率值,介绍了AD采集传感器数据和数据的滤波处理获取心率值 ...

  6. 基于uFUN开发板的心率计(二)动态阈值算法获取心率值

    前言 上一篇文章:基于uFUN开发板的心率计(一)DMA方式获取传感器数据,介绍了如何获取PulseSensor心率传感器的电压值,并对硬件电路进行了计算分析.心率计,重要的是要获取到心率值,本篇文章 ...

  7. 基于麒麟座开发板2.0的MQTT实现例程

    链接--->https://sanwen8.cn/p/649shZ1.html OneNET现已全面适配标准MQTT协议,相信这一功能的增加会**便于开发者进行设备的接入. OneNET提供了M ...

  8. Opencv2.2 移植到am335x-y开发板

    1.虚拟机上运行cmake-gui,报找不到文件,指示安装. 2.下载opencv2.2.0 http://opencv.org/downloads.html 3.cmake-gui,配置参考< ...

  9. 基于 Arduino 开发板,这款插座是可编程且开源的

    基于 Arduino 开发板,这款插座是可编程且开源的 https://www.oschina.net/news/74861/open-source-socket https://github.com ...

随机推荐

  1. Error: spawn xxxx ENOENT原因与解决

    背景: npm 运行项目时出现了该问题 原因: path环境变量配置不当,导致无法找到指定的程序,如Error: spawn cmd.exe ENOENT,出现该问题的原因是因为没有将%SystemR ...

  2. 彻底删除node_modules文件

    npm install rimraf -g rimraf node_modules

  3. CSS3-文本渐变色

    在活动中,文字的颜色经常采用渐变的效果,在此,做一下笔记 <span>你好呀!</span> span{ background-image: linear-gradient(t ...

  4. shell - sed 简单使用记录

    时间长不用,总是会忘掉的........还是烂笔头好些. sed 命令使用帮助及实操举例 功能:主要用来对一个或多个文件进行编辑,简化对文件的反复操作. 语法: sed [-hnV] [-e<s ...

  5. ES6之Array.includes()函数

    一.定义 includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false. 二.语法 arr.includes(searchElement) arr.includ ...

  6. awk在企业中最常用的语句

    awk最常用以及面试基本都会被问到的实例: A.统计日志中每个URL被访问的次数 cat access.log http://www.etiantian.org/1.html http://post. ...

  7. QBXT T15214 Day2上午遭遇

    题目描述 你是能看到第一题的 friends呢. -- hja ?座楼房,立于城中 . 第?座楼,高度 ℎ?. 你需要一开始选择座楼,跳. 在第 ?座楼准备跳需要 ??的花费. 每次可以跳到任何一个还 ...

  8. 【APIO2015】Palembang Bridges

    题目描述 一条东西走向的穆西河将巴邻旁市一分为二,分割成了区域 $A$ 和区域 $B$. 每一块区域沿着河岸都建了恰好 $1000000001$ 栋的建筑,每条岸边的建筑都从 $0$ 编号到 $100 ...

  9. Hdoj 3506 Monkey Party

    Discription Far away from our world, there is a banana forest. And many lovely monkeys live there. O ...

  10. 搭建服务与负载均衡的客户端-Spring Cloud学习第二天(非原创)

    文章大纲 一.Eureka中的核心概念二.Spring RestTemplate详解三.代码实战服务与负载均衡的客户端四.项目源码与参考资料下载五.参考文章 一.Eureka中的核心概念 1. 服务提 ...