OpenEdv-开源电子网

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

为啥imgtolcd转换的数组显示不正确,如图

[复制链接]

29

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2018-8-3
在线时间
48 小时
发表于 2018-11-9 18:29:08 | 显示全部楼层 |阅读模式
1金钱
为什么用imgtolcd转换出来的数组显示会显示不正确,
而且想不通的是,并不是乱码,好像被压缩,切割过一样,不知道问题出在哪里?
有懂的吗?
linshi3.png
linshi4.jpg

最佳答案

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

错位了。 找到原因了。用的官方的某个函数 void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color) { u16 height,width; u16 i,j; width=ex-sx+1; //得到填充的宽度 height=ey-sy+1; //高度 for(i=0;i
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

29

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2018-8-3
在线时间
48 小时
 楼主| 发表于 2018-11-9 18:29:09 | 显示全部楼层
错位了。
找到原因了。用的官方的某个函数
void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color)
{  
        u16 height,width;
        u16 i,j;
        width=ex-sx+1;                         //得到填充的宽度
        height=ey-sy+1;                        //高度
        for(i=0;i<height;i++)
        {
                LCD_SetCursor(sx,sy+i);           //设置光标位置
                LCD_WriteRAM_Prepare();     //开始写入GRAM
                for(j=0;j<width;j++)LCD->LCD_RAM=color[i*width+j];//写入数据
        }                  
}  
要想从左上角显示一个3*3的图,参数传递应该是1,1,3,3。我把起点当成了0,0。
同样,想在起点x=10,y=20处开始显示,终点只能是12,22。不是13,23。很容易弄错呀,耽误了我一个多小时····还以为软件有问题。
回复

使用道具 举报

29

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2018-8-3
在线时间
48 小时
 楼主| 发表于 2018-11-9 18:30:32 | 显示全部楼层
for(ts=0;ts<28173;ts++)
         {
                color=store4[2*ts];
                color<<=8;
                color=color+store4[2*ts+1];
                testsram[ts]=color;//预存测试数据         
         }         
        while(1)
        {       
                LCD_Color_Fill(0,0,189,157,testsram);
        }             

高位在前面
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 21:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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