原创 用最新库玩转智林STM32开发板(之五)------在真彩屏上显示国旗

2009-4-12 17:23 3674 12 11 分类: MCU/ 嵌入式

https://static.assets-stash.eet-china.com/album/old-resources/2009/4/10/4caa9621-32c6-4744-8066-d6c478ea3d84.rar" target=_blank> 


首先随便选一面五星红旗 attachimg.gif  4c9e3d05-aeab-4740-9595-ed7579321f0e.jpg


编成170*96像素的图.本例程用的是170*96象素的小图,可以在PHOTO SHOP中用把任何图像编成 R5 G6 B5 BMP格式,这一点不难做到只要
选好像素,另存为,先按保存后选择高级选项中的R5 G6 B5 BMP格式保存下就可以

智林巧妙地用了汇编语言命令incbin,先把图像装入CODE区中完后再利用LCD_BMP函数向外调,显示在液晶屏上
由于最新评估版不够,我用了智林开发板光盘上的方法,成功地取消了限制.顺利通过了(大家不要问我是怎么搞的
智林开发板光盘已经明确写着的)

最后我把工程说一下
  BMP图象考到工程目录下
  bmp组:包括BMP.S
  LIB组:直接包括MDK下ARM\RV32\LIB\ST\STM32F10XR.LIB
  uinit组:包括main.c
  lcd组:包括TFT018.c
  Source Group 1组:包括启动文件STM32F10X.S
最后我把所有文件打包有智林开发板的可以试一下

以下是LCD_BMP函数:
void LCD_BMP( U8 x0, U8 y0, U8 x1, U8 y1 , U8 * Bmp )
  {
S16 i,j;
LCD_SetArea(x0,y0,x1,y1);
LCD_Inst(0x2C);
LCD_CS(0);
LCD_RD(1);
LCD_RS(1);
for( i = y1 - y0; i >= 0; i-- )
  for( j = 0; j <= x1 - x0; j++ ) {
   U16* PixP =  (U16*)(Bmp+0x46+i*(x1-x0+1)*2);
   U16 Pix = *(PixP+j);
   LCD_Bus_Write_Byte(Pix>>8);
   LCD_Bus_Write_Byte(Pix);
   }
LCD_CS(1);
}

及BMP.S


              PRESERVE8
; ------------------------ Load bmp picture ------------------------
AREA    |subr|,DATA,READONLY
EXPORT      bmp
bmp
    incbin china.BMP
                END

    以下程序打包:


PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
12
关闭 站长推荐上一条 /3 下一条