OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4463|回复: 1

STM32F407ZET6直接驱动SSD1963内部LCD GRMA问题。

[复制链接]

11

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2017-9-30
在线时间
33 小时
发表于 2023-4-15 09:20:25 | 显示全部楼层 |阅读模式
20金钱
本帖最后由 573509357 于 2023-4-15 09:20 编辑

问题如下:用STM32F407ZET6直接驱动SSD1963内部LCD GRMA后,屏幕显示乱码。参考例程是正点原子STM32F407的图片显示里程,我用LMG2LCD这个软件生成BIN文件,存到内存卡。程序读取内存卡的BIN文件,直接写入到SSD1963内部LCD GRMA,但是屏幕显示乱码?用的是横屏模式。
显示部分如下:
        buf=mymalloc(SRAMIN,bufcom);                                //为带路径的文件名分配内存
f_mount(fs[0],"0:",1);         //挂载SD卡
        res = f_open(&fsrc, "0:背景.bin", FA_OPEN_EXISTING | FA_READ);//打开外部文件
printf("测试点1=%u\r\n",res); //
    if(res==FR_OK)//打开成功
                        {  
                                
                                 LCD_SetCursor(0,0);  //光标位置
                                LCD_Set_Window(0,0,800,480);         //工作窗设定        
                LCD_WriteRAM_Prepare();           //开始写入GRAM
//           LCD_WR_REG(0x2c);
          while(1){
    res = f_read(&fsrc,buf, bufcom, &br);//读外部文件
                        printf(" 测试点2\r\n"); //打印LCD ID  
    if (res || br == 0) break;   // error or eof//错误或文件结束跳出
                        
                        for(i=0;i<bufcom;i=i+2)
                         {
         temp=(uint16_t)(( buf<<8)+buf[i+1]);
        
                        LCD_WriteRAM(LCD_BGR2RGB(temp)); //写16位数据

//                                         LCD_WR_DATA(temp); //写16位数据

//                                delay_ms(1);
                         }
//             for(i=0;i<bufcom;i++)
//                         {
//             printf("%c",buf); //打印LCD ID
//             }
     }
        printf(" 测试点3\r\n"); //打印LCD ID         
    }
                                myfree(SRAMIN,buf);                                //释放内存
                LCD_Set_Window(0,0,800,480);//工作窗设定
          f_close(&fsrc); //关闭文件        

生成BIN文件按照如下规则:

完整的资料我上传包里了

实验41 图片显示实验.zip

10.72 MB, 下载次数: 1

最佳答案

查看完整内容[请看2#楼]

这个问题找到了,内存块数组设置太大,设置的为800*480,为360K远远大于407的内存100k,读取BIN文件出错,导致后面的乱码。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2017-9-30
在线时间
33 小时
 楼主| 发表于 2023-4-15 09:20:26 | 显示全部楼层
这个问题找到了,内存块数组设置太大,设置的为800*480,为360K远远大于407的内存100k,读取BIN文件出错,导致后面的乱码。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-30 09:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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