搜索
bottom↓
回复: 3

bmp.pic_dip==16是对应spi液晶屏? if(bmp.pic_dip==24)对应直接驱动的RGB屏

[复制链接]

出0入0汤圆

发表于 2021-1-26 18:01:26 | 显示全部楼层 |阅读模式
bmp.pic_dip==16是对应spi液晶屏? if(bmp.pic_dip==24)对应直接驱动的RGB屏 是不是啊 斑竹大人
rgb屏 应该不用给屏本身发命令的吧 直接输入 数据  +时钟 扫描驱动 对不对?
  1.         if(bmp.pic_dip==16)
  2.         {
  3.                 WriteComm(0x3A); //Set_address_mode
  4.                 WriteData(0x55);
  5.                 TK80->CMDIR =0x2c;
  6.                 temp=bmp.pic_w_l*2;  //如果是16位的位图,一行是pic_w_l*2个字节
  7.                 xOfset = temp%4;
  8.                 if(xOfset !=0 ) xOfset = 4- xOfset;
  9.                         for (tx = 0; tx < bmp.pic_h_l; tx++)
  10.                                 {
  11.                                         f_read(&fsrc, buffer, (bmp.pic_w_l)*2+xOfset, &br);
  12.                                         for(ty=0;ty<temp;ty+=2)
  13.                                                 {               
  14.                                                         TK80->DINR = (*(ty +1+buffer)<<8)|(*(ty +0+buffer));
  15.                                                 }
  16.                                 }
  17.                         WriteComm(0x3A); //Set_address_mode
  18.                         WriteData(0x77);
  19.         }
  20.         else if(bmp.pic_dip==24)       
  21.                 {
  22.                         temp=bmp.pic_w_l*3;                                                                 //如果是24位的位图,一行是pic_w_l*3个字节
  23.                         xOfset = temp%4;
  24.                         if(xOfset !=0 ) xOfset = 4- xOfset;
  25.                        
  26.                         Xstart = ((XSIZE_PHYS-bmp.pic_w_l)/2);
  27.                         Ystart = XSIZE_PHYS*(YSIZE_PHYS-bmp.pic_h_l)/2;


  28.                         Xstart = XSIZE_PHYS*((YSIZE_PHYS-bmp.pic_w_l)/2);
  29.                         Ystart = (XSIZE_PHYS-bmp.pic_h_l)/2;
  30.                         for(i=0;i<bmp.pic_h_l;i++)
  31.                         {
  32.                                 f_read(&fsrc, buffer, (bmp.pic_w_l)*3+xOfset, &br);
  33.                                 j=0;
  34.                                 for(ty=0;ty<temp;ty+=3)//for(j=0;j<xLong;j++)
  35.                                 {       
  36.                                         LTDC_emWin[Xstart+i+XSIZE_PHYS*j+Ystart]=((*(ty +0+buffer)<<16))|(*(ty +1+buffer)<<8)|(*(ty +2+buffer));
  37.                                         j++;
  38.                                 }
  39.                         }
  40.                 }
复制代码

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入143汤圆

发表于 2021-1-26 23:15:25 | 显示全部楼层
这个16与24,是指BMP图片的位宽,目前支持16位、24位及32位的BMP解码,这个是应用上层的函数,与底层无关

出0入0汤圆

 楼主| 发表于 2021-1-27 12:39:32 | 显示全部楼层
在 16bit 的demo 里面 写液晶屏 是 用
                WriteComm(0x3A); //Set_address_mode
                WriteData(0x55);
这样的代码

在 24bit 是直接写 tk499 的显存啊

出0入143汤圆

发表于 2021-1-28 11:18:44 | 显示全部楼层
你上面的程序是RGB模式,TK499的RGB模式一般用32位,所以16、24、32位都是直接写显存就OK了,不需要写指令。

这些代码是MCU 8080模式的
WriteComm(0x3A); //Set_address_mode
WriteData(0x55);
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 11:50

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表