[M3_SN]LM3Sxxx的图形驱动库介绍.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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);

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档