16位320*240的位图大小为150K字节,而对于EM-STM3210E开发板来说,RAM仅有128K,远不够显示一幅完整位图,红牛的开发板即使有256K的RAM,但是刨去堆、栈及TinyCLR本身所用,剩下的也不多了,所以要显示全屏位图,必须分块显示。
但是这样带来两个问题,一幅图要分块制作,相当繁琐,不过这个可以升级TBConvert程序,让其支持自动分块功能,这个问题算完美解决了。下个问题,从Flash读取需要一定时间,显示也需要一定时间,这样显示全屏位图的过程,就是从上到下,一个一个画块依次显示,效果不太好。幸好LCD驱动,第7个寄存器可以控制显示过程,可以在更新显存数据时,不更新画面,不过这个过程不要太长,否则LCD屏上会有不好看的条文出现。
升级后的TBConvert程序如下,可以设定要分割的块数,注意高度必须要整除块数:
TBConvert 下载地址:http://www.sky-walker.com.cn/yefan/MFV40/TBConvert.exe
针对第二个问题,升级TinyGUI库,增加如下两个函数:
public static void SuspendLayout(); //挂起更新
public static void ResumeLayout(); //恢复更新
好了,我们用绘图工具,制作三幅240*320的位图,制作好之后用TBConvert 分为4段然后保存。然后用YFAccessFlash工具,把这三幅位图下载到Custom去,下载前记得要先清空Flash(按 Erase按钮),三幅图一同下载。
编写如下代码,我们把这三幅图如幻灯片式的一一展现出来,代码如下:
public static void Main()
{
uint offset_Addr = 0x002A0000; //Custom区在Flash中的偏移地址
uint bmp_Size = 38412; //TinyBMP图片的1/4
byte[] bytData = new byte[bmp_Size];
uint DataAddr = offset_Addr;
while (true)
{
for (int index = 0; index < 3; index++)
{
if (index == 0) DataAddr = offset_Addr;
Graphics.SuspendLayout(); //可以比较一下,有这两句代码和没有这两句代码,图形显示效果的区别
for (int i = 0; i < 4; i++)
{
AccessFlash.Read(DataAddr, bmp_Size, bytData);
Graphics.DrawImage(0, i * 80, bytData);
DataAddr += bmp_Size;
}
Graphics.ResumeLayout();
//等待时间必须要长一些,否则显示会有问题(>300ms)
Thread.Sleep(1000);
}
}
}
运行后的效果图如下:
注意:红牛开发板和EM-STM3210E需要下载最新的固件,才能运行该示例。
下载地址和原先的相同,版本分别为V0.9.3和V0.9.1.
-----------------------------------------------------------------------------------------
【低价开发板】http://item.taobao.com/item.htm?id=7117999726
源码下载:http://www.sky-walker.com.cn/yefan/MFV40/SourceCode/TinyGUI_BigBMP.rar
文章参考: 《.Net Micro Framework 快速入门》
中文讨论组:http://space.cnblogs.com/group/MFSoft/
分享到:
相关推荐
STM32_Nano开发板--原理图 很完整 不错,欢迎下载
STM32F407开发板-标准例程-寄存器版本。有59个例子。涉及所有试验。
两块STM32,一个做主机一个做从机,能够实现主机发送数据以及主机读取从机数据。通过串口调试,以及LED灯来提示工作状态。
普中STM32-PZ6806L开发板资料光盘结构 | |---1--用户必看 | |--KEIL5安装教程 | |--普中ARM仿真器使用说明 | |--普中PZ6806L开发板入门教程 | |---2--开发板原理图 | |--彩屏原理图-----------------对应...
STM32F407开发板作为客户端进行网络通信,解压即用
安富莱_STM32-V7开发板资料
此资源是《基于探索者stm32f407开发板ucos-iii+lwip1.4.1的tcp server并发服务器解决例程》配套的源码压缩包
安富莱_STM32-V5开发板_RL-TCPnet网络教程
FS-MP1A开发板是基于ST(意法半导体)公司的STM32MP1系列微处理器而设计的开发板,该系列处理器提供了集成 Arm® Cortex®-A7 和 Cortex®-M4 两种内核的异构架构,在实现高性能且灵活的多核架构以及图像处理能力基础...
教程 1、stm32单片机之开发板介绍教程 1、stm32单片机之开发板介绍教程 1、stm32单片机之开发板介绍教程 1、stm32单片机之开发板介绍教程 1、stm32单片机之开发板介绍教程 1、stm32单片机之开发板介绍教程 1、stm32...
STM320518-单片机开发板uCOS-II V2.92.07系统移值源码
阿波罗STM32F767开发板立场实验51到65部分,实验51 FPU测试(Julia分形)实验,实验52 DSP测试实验,实验53 手写识别实验,实验54 T9拼音输入法实验,实验55 串口IAP实验,实验56 USB读卡器(Slave)实验,实验57 USB...
安富莱_STM32-V7开发板_用户手册,含BSP驱动包设计,手册详细。
stm32f030青峰开发板代码,定时器,GPIO,RTC,看门狗,uart,PWM等等例程
STM320518-单片机开发板uCOS-III V3.03.01系统移值源码
STM32F401 官方开发板原理图 NUCLEO STM32F401 官方开发板原理图 NUCLEO
stm32f411开发板详细说明手册 Programming-with-Stm32-Getting-Started-with-the-Nucleo.pdf
STM32F407IGT6开发板-STM32F407IGT6开发板原理图.pdf
嵌入式_优质嵌入式项目之低功耗STM32F411开发板设计_原理图+PCB源文件+例程+驱动
源码 1、stm32单片机之开发板介绍源码 1、stm32单片机之开发板介绍源码 1、stm32单片机之开发板介绍源码 1、stm32单片机之开发板介绍源码 1、stm32单片机之开发板介绍源码 1、stm32单片机之开发板介绍源码 1、stm32...