- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[M3_SN]LM3Sxxx的图形驱动库介绍
LM3Sxxx的图形驱动库介绍
LM3Sxxx系列MCU的图形库自下向上分为三层display driver layer,graphics primitives layer(图形基元层),widget layer(小工具层),我们要做的就是写The displaydriverlayer。也就是底层驱动层,写好了这一层,当你调用上面的graphics primitives layer画一些基本的图形的时候(如画圆),那么中间的那一个graphics primitives layer(图形基元层)就会自己去调用display driver layer(显示驱动层)里的我们自己编写的函数(画点)来完成当前的绘制工作。同理,最上面的widget layer(小工具层)也是通过调用graphics primitives layer(图形基元层)来实现更加复杂的图形,如边栏,滑调,画线。所以就是为什么我说这个图是自下向上的原因。那我们要怎么来使用这个库呢?
首先,大家把LCD连上的M3,可以用IO,也可以用总线,当然我是用的IO,然后跟据LCD驱动IC来配置里面的各种寄存器,让LCD做好显示的准备工作,我传的那份LCDDisplay那个工程里大家可以进LCDFunc.c那个源文件去看一下,其中的LCD_Init()这个函数就完成了这个工作。所以,在LCD显示部分,他总是最先被调用的。LCD显示的准备工作做好了,大家可以编写一些最底层的图形函数。大家看下我传上来的TI图形驱动库的文档,StellarisWar的库提供了一个结构体tDisplay。这个结构是需要我们去补充的,只要你补充好了这个结构,基本上就万事大吉了。在这个结构里基本上都是函数指针。指向了我们要补充的基本图形函数,如画点,画平水线,画竖直线,画填充矩形。大家在编写这些函数的时候要注意,一定要按照他的要求去编写,如要编写一个画水平线的函数,那么这个函数的形参和返回值都要和这个库的要求匹配起来,顺序不要搞反了,如形参传递的顺序。但是函数名称大家可以随便写,只要你在这个结构里的位置放对就好。因为他传递的只是一个函数指针,只要让库正确的找到那个函数就OK。大家把这个结构搞定后,基本就比交顺利了。那么,我们现在来看一个实际的例子。
#include SystemInit.h
#include grlib.h
tRectangle MyRect;
const tDisplay MyDisplay=
{
sizeof(tDisplay),
0,
320, // LCD width
240, // LCD height
LCDPixelDraw,
(void*)0,
LCDlineDrawH, // horizontal line
LCDlineDrawV, // vertical line
LCDRectFill, // RectFill
LCDColorTranslate,
LCDFlush,
};
tContext MyContext;
void main()
{
CLOCK_Init(); // 时钟初始化
GPIO_Init();//GPIO初始化
LCD_Init();//LCD初始化
LCDClearScreen(BLACK);//清屏
GrContextInit(MyContext, MyDisplay);//初始化图形描绘上下文
TiLogDraw(); //画LOG
//**********************************************************************
//显示菜单
//**********************************************************************
//
// 为LCD底部填充一个的紫罗兰红的矩形
//
MyRect.sXMin = 0;
MyRect.sYMin = 217;
MyRect.sXMax = GrContextDpyWidthGet(MyContext) - 1;
MyRect.sYMax = 240;
GrContextForegroundSet(MyContext, ClrMediumVioletRed);
GrRectFill(MyContext, MyRect);
//
// 为这个矩形放一个白色的边框
//
GrContextForegroundSet(MyContext, ClrWhite);
GrRectDraw(MyContext, MyRect);
您可能关注的文档
最近下载
- 蒸压加气混凝土砌块施工技术课件.ppt VIP
- 沥青路面再生利用项目可行性研究报告项目建议书.docx
- 医学课件-老年卧床患者压力性损伤的预防和护理进展.pptx
- 电力系统经济学原理习题解答 全.doc VIP
- 数据中心机房工程施工组织设计方案.pptx VIP
- 传统文化与修身(鲁东大学)知到智慧树章节答案.docx VIP
- 湖南文艺出版社(2024)新教材小学二年级音乐上册第五课《草原就是我的家》精品课件.pptx VIP
- 益智课堂数字华容道教学课件.pptx VIP
- (2025秋新版)部编版二年级道德与法治上册《第8课 我为班级作贡献》教案.docx VIP
- 尼科尔森《微观经济理论-基本原理与扩展》(第9版)课后习题详解(第18章--不确定性和风险厌恶).doc VIP
文档评论(0)