基于STM32的嵌入式系统原理与设计第三章.ppt

基于STM32的嵌入式系统原理与设计第三章.ppt

  1. 1、本文档共104页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.6.4 图片显示和操作 本节图片操作分为三个部分: 1:将TF卡中的图片文件分部读取到内存(内存空间有限,只能循环使用),然后向RA8875发送位图传输指令,然后连续发送数据更新RA8875显示缓存达到图片显示的目的。该操作可以实现图片显示,但是速度较慢,且严重占用CPU时间。 2:将TF卡中的图片转存到SPIFALSH中,向RA8875卡发送指令,令其以DMA方式读取图片自动更新显存。该方式速度快,不占用CPU时间。笔者用该种方式现在了简单的电子相框。 3:使用块传输引擎实现一些快速位图操作功能。 3.6.4 图片显示和操作 1 TF卡中图片的显示 首先分析的是文件头,从字节0到13共14个字节称为字节头结构,字节头结构包含的信息 P173 剩余的文件头从字节14到字节53,称为位图信息头 P173-174 位图信息结构体定义 (代码3-41) 3.6.4 图片显示和操作 实现将TF卡中图片显示在液晶屏上,代码3-42 主程序部分代码,代码3-43 P176 3.6.4 图片显示和操作 2基于DMA方式的快速图片显示实现电子相框 首先,将图片文件转换为565格式的bmp文件,分辨率是480X272。 编程将图片拷贝到SPI FLASH,谨慎的规划目标地址,不要相互覆盖或覆盖掉原来拷贝进来的字库! 向RA8875发指令,告诉它的工作方法,让它去SPIFLASH取数据,告诉它图片在SPIFLASH中的起始地址,告诉它显示位置,然后让它开启DMA模式拷贝数据到显存。 之后就可以去做其它工作,任务已经分配下去了有人完成,完全的并行!读者会看到图片显示的速度非常快,如果不加延时地循环显示就会快的看不清楚。RA8875的DMA工作方式的确比单纯用STM32读取图片和显示图片的能力强很多。 代码3-44 P177 3.6.4 图片显示和操作 3块传输引擎BTE操作 RA8875 内建一2D 加速引擎功能,称为BTE (Block Transfer Engine),可增强区块数据处理的效率。当区块性数据需要搬移或需特定逻辑处理时,可透过RA8875 的BTE 功能快速地完成且可简化MCU的程序。 RA8875支持13 种BTE操作模式。关于BTE引擎操作码说明,请参考RA8875手册。对于每一种BTE操作模式,可搭配最多16 种的光栅运算码 (ROP,Raster Pperations),提供以区块为范围的多功能的逻辑运算。 基于BTE引擎块操作的三个实例 代码3-45 3.6.4 图片显示和操作 在实例1为BTE块填充,流程为 BTE_Size_setting设置了BTE区间大小为宽10,高50的区间 用BTE_ROP_Code设置模式为实填充(Solid Fill) 进入循环,不断增加i值 Text_Foreground_Color1(i,0,0)表示BTE填充色为红色,红色强度为i(红色为5位,最大值为32) BTE_Source_Destination(0,i*15,0,0);表示将填充到(i*15,0)开始的区间 BTE_enable()执行这个填充 3.6.4 图片显示和操作 3.6.4 图片显示和操作 在实例2为BTE模板填充,流程为 Pattern_Set_16x16函数设置模板为16X16像素点位图 Write_To_Pattern设置下面的操作为写入模板,操作对象是41H寄存器 Pattern_Set_number定义模板号 循环将gImage_p16x16_2数组中的数据写入模板。可以直接定义这个数组或将TF卡中的16X16位图数据读出写入到数组。笔者例程中直接定义了这个数组。 Write_To_Bank1and2及Write_To_Bank1分别设置写入目的地为显存,图层0,操作对象是41H寄存器。 设置传输对应关系,设置源图层和目的图层,设置BET块大小为480X272 BTE_ROP_Code(0xc6)设置BTE工作方式为模板填充 BTE_enable()启动这个填充,将16X16的位图填充在480X272的空间。填充十分迅速。 3.6.4 图片显示和操作 3.6.4 图片显示和操作 实例3为BTE块传输,流程为 Source_Layer1和Destination_Layer1设置源图层和目的图层 BTE_Source_Destination(10,200,50,50)设置源在(10,50),目的在(200,50) BTE_Size_setting(148,152)设置BTE块的大小为(148,152)。 BTE_ROP_Code(0xc2)表示BTE方式为块拷贝。 BTE_enable()启动这个拷贝,在屏幕上将位置(10,50),大小(148,152)

文档评论(0)

@思念@ + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档