查看: 2486|回复: 8

图片DMA电子相框例程移植:4.3寸屏改成8.4寸屏(640x480)

[复制链接]
  • TA的每日心情
    开心
    2014-8-18 10:55
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2014-8-6 11:26:44 | 显示全部楼层 |阅读模式
    分享到:
    我用的屏是分辨率为640x480的8.4寸TTL接口工业屏。所以程序作以下修改。
    1,跟踪 tft_init(); -> BP_Init_RA8875();
    将void BP_Init_RA8875(void)函数内的
    /*4:水平设置 */
    WriteCommand(0x14);                  
    WriteData(0x3B);        //水平显示宽度(像素) = (HDWR + 1)*8 = 480      
    改成
    WriteCommand(0x14);  
    WriteData(0x4F); //640

    /*5:垂直设置*/                                      
    WriteCommand(0x19);  //垂直显示高度低8位 [0-7] (VDHR0)                       
    WriteData(0x0f);  
    改成        
    WriteCommand(0x19);
    WriteData(0xdf);  //480      

    /*6.活动窗口active window设置*/
    //水平方向设置
    WriteCommand(0x34); //水平结束点低位 (HEAW0)
    WriteData(0xDF);
    WriteCommand(0x35); //水平结束点高位 (HEAW1)           
    WriteData(0x01);
    改成
    WriteCommand(0x34); //水平结束点低位 (HEAW0)
    WriteData(0x7F);//0x027F=639
    WriteCommand(0x35); //水平结束点高位 (HEAW1)           
    WriteData(0x02); //0x027F=639
    //垂直方向设置                                       
    WriteCommand(0x36); //垂直结束点低位 (VEAW0)
    WriteData(0x0F);
    WriteCommand(0x37); //垂直结束点高位 (VEAW1)           
    WriteData(0x01);
    改成
    WriteCommand(0x36); //垂直结束点低位 (VEAW0)
    WriteData(0xdF);//0x01dF=479
    WriteCommand(0x37); //垂直结束点高位 (VEAW1)           
    WriteData(0x01); //0x01dF=479

    水平设置和垂直设置方面只要设置以上寄存器便可,其他寄存器可以不修改。

    2,跟踪 LcdClear(WHITE);
    将void LcdClear(u16 color)函数内的
    Geometric_Coordinate(0,479,0,271); // 设定矩形坐标
    改成
    Geometric_Coordinate(0,639,0,479); // 设定矩形坐标

    3,SROM_CLK_DIV(3);
    改成SROM_CLK_DIV(0);
    将SPIFLASH时钟设置为系统时钟,加快DMA的传输速率。

    4,添加语句
    bmp_tf2flash("bmp/b01.bmp",bmp_address1);
    bmp_tf2flash("bmp/b02.bmp",bmp_address4);
    bmp_tf2flash("bmp/b565.bmp",bmp_address12);
    说明:
    (1)bmp_address12是我添加的一个宏定义
    追踪可以查看到:#define bmp_address12 0x700000         //SPIFLASH总空间为8M,访问地址空间为0x0~0x800000
    b01.bmp,b02.bmp,b565.bmp是我自己用位图转换程序做的一个16位色的640x480分辨率的bmp格式的图片。
    一幅图片所占用的存储空间为640*480*2字节=0x96000字节,所以所占用的地址空间为0x96000,再加上图片的文件头1K空间,总共为0x96400所以宏定义图片在SPIFLASH存储地址时要注意。比如 bmp_address4 - bmp_address1 > = 0x96400
    (2)追踪bmp_tf2flash("bmp/b01.bmp",bmp_address1); -> u32 bmp_tf2flash(char * bmpfile,u32 startaddress)
    将u32 bmp_tf2flash(char * bmpfile,u32 startaddress)内的spiflash_writewithoutcheck((u8 *)(&fbmpheader),addr,sizeof(fbmpheader));  //写文件头
    改成
    spiflash_write((u8 *)(&fbmpheader),addr,sizeof(fbmpheader));  //写文件头

    spiflash_writewithoutcheck(mem,addr,G_READCNT);         //写入FLASH
    改成
    spiflash_write(mem,addr,G_READCNT);         //写入FLASH               

    spiflash_writewithoutcheck(mem,addr,lastbytes);          //写入剩余字节
    改成
    spiflash_write(mem,addr,lastbytes);          //写入剩余字节                        

    spiflash_write()函数是先擦除再写;spiflash_writewithoutcheck()是直接写,没有擦除操作。

    5,主循环语句改为
    bmp_dispflash(bmp_address1,0,0);
    delay_ms(500);
    delay_ms(500);
    delay_ms(500);
    delay_ms(500);
    bmp_dispflash(bmp_address4,0,0);
    delay_ms(500);
    delay_ms(500);
    delay_ms(500);
    delay_ms(500);
    bmp_dispflash(bmp_address12,0,0);
    delay_ms(500);
    delay_ms(500);
    delay_ms(500);
    delay_ms(500);

    至此,移植结束。源码包见1楼



























































    回复

    使用道具 举报

  • TA的每日心情
    开心
    2014-8-18 10:55
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

     楼主| 发表于 2014-8-6 11:34:48 | 显示全部楼层
    移植后源码

    图片DMA电子相框20140806.rar

    6.5 MB, 下载次数: 26

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-8-18 10:55
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

     楼主| 发表于 2014-8-6 11:48:58 | 显示全部楼层
    演示视频传不上来了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-8-6 12:03:56 | 显示全部楼层
    可以把文稿发到service@eeboard.com,我们来帮你编辑
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-8-7 16:04
  • 签到天数: 40 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2014-8-6 14:15:59 | 显示全部楼层
    点32个赞                                                   
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-15 09:28
  • 签到天数: 222 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2014-8-6 19:41:50 | 显示全部楼层
    顶楼主,视频可以放到优酷,把链接贴过来哦~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-8-18 10:55
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

     楼主| 发表于 2014-8-7 09:12:00 | 显示全部楼层
    奋斗哥 发表于 2014-8-6 19:41
    顶楼主,视频可以放到优酷,把链接贴过来哦~

    呵呵,我的360云盘分享。http://yunpan.cn/QagVk2qWXeatU  访问密码 791c
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-6-22 23:57
  • 签到天数: 943 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2014-8-14 10:53:53 | 显示全部楼层
       学习  啦              
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-1-20 09:02
  • 签到天数: 45 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2014-12-7 19:02:27 | 显示全部楼层
    我是来赚铜板的
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-24 03:15 , Processed in 0.182712 second(s), 32 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.