OpenEdv-开源电子网

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

正点原子阿波罗STM32F767开发板改横屏显示不正常

[复制链接]

3

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2018-6-16
在线时间
8 小时
发表于 2018-10-7 16:08:38 | 显示全部楼层 |阅读模式
3金钱
使用正点原子阿波罗STM32F767开发板改横屏显示不正常,以下是我修改的地方。检查DMA感觉没什么修改的。横屏显示不需要坐标变换,直接计算。麻烦帮我看看哪里修改得

QQ截图20181007153525.jpg
QQ截图20181007160113.jpg


QQ截图20181007160347.jpg

修改方LCD显示方向控制函数
LCD_Display_Dir(1);

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2018-6-16
在线时间
8 小时
 楼主| 发表于 2018-10-7 16:13:30 | 显示全部楼层
程序修改的地方
修改显示方向控制函数
LCD_Display_Dir(1);
在u8 spb_init(void)函数里添加横屏显示的分辨率
    else if(lcddev.width==1280)        //对于1280*800的LCD屏幕
    {
        icowidth=110;
        micoyoff=18;
        lcdtype=6;
        icoindex=2;
        spbdev.stabarheight=30;
        spbdev.spbheight=610;
        spbdev.spbwidth =1280;
        spbdev.spbfontsize=16;
    }
修改内存画点函数
void slcd_draw_point(u16 x,u16 y,u16 color)
{
    if(lcdltdc.dir)        //横屏
    {
        //if(lcdltdc.pwidth)y=spbdev.spbwidth*SPB_PAGE_NUM+spbdev.spbahwidth*2-1;
        sramlcdbuf[x+y*(spbdev.spbwidth*SPB_PAGE_NUM+spbdev.spbahwidth*2)]=color;//横屏显示不需要坐标变换

    } else                         //竖屏
    {
        if(lcdltdc.pwidth)x=spbdev.spbwidth*SPB_PAGE_NUM+spbdev.spbahwidth*2-x-1;
        sramlcdbuf[y+x*spbdev.spbheight]=color;
    }
}
修改void slcd_frame_show(u32 x)函数
    if(lcdltdc.pwidth)
    {
        if(lcdltdc.dir)        //横屏
        {
            x=x-1;//显示第一帧
            LTDC_Color_Fill(0,spbdev.stabarheight,spbdev.spbwidth-1,spbdev.stabarheight+spbdev.spbheight-1,sramlcdbuf+x);
        } else                         //竖屏
        {
            x=spbdev.spbwidth*(SPB_PAGE_NUM-1)+spbdev.spbahwidth*2-x-1;//计算图片显示的起始位置
            LTDC_Color_Fill(0,spbdev.stabarheight,spbdev.spbwidth-1,spbdev.stabarheight+spbdev.spbheight-1,sramlcdbuf+x*spbdev.spbheight);//没看懂为什么显示偏移位置要乘以屏幕高度
        }
    }
回复

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2018-6-16
在线时间
8 小时
 楼主| 发表于 2018-10-7 16:17:45 | 显示全部楼层
我只要SPB主界面显示正常即可,希望原子哥给予帮助
回复

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2018-6-16
在线时间
8 小时
 楼主| 发表于 2018-10-7 21:11:35 | 显示全部楼层
补充修改的地方,在背景图片中增加了一张4480*610图片,屏幕X轴分辨率为1280.3.5帧的尺寸为4480=1280*3.5.Y轴高度610=屏幕高度800-状态栏30-主图标160高度。
//背景图路径,根据不同的lcd选择不同的路径
u8*const spb_bkpic_path_tbl[7]=
{
    "1:/SYSTEM/SPB/BACKPIC/840224.jpg",
    "1:/SYSTEM/SPB/BACKPIC/952384.jpg",
    "1:/SYSTEM/SPB/BACKPIC/1120364.jpg",
    "1:/SYSTEM/SPB/BACKPIC/1680610.jpg",
    "1:/SYSTEM/SPB/BACKPIC/2100834.jpg",
    "1:/SYSTEM/SPB/BACKPIC/28001090.jpg",
    "1:/SYSTEM/SPB/BACKPIC/4480610.jpg",
};
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2018-10-8 02:06:56 | 显示全部楼层
你先显示一张图片出来,剩下的就简单了。 你用的RGB屏,  LCD的扫描方向是固定的,你要注意下这个扫描放向的问题
回复

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2018-6-16
在线时间
8 小时
 楼主| 发表于 2018-10-8 12:31:21 | 显示全部楼层
正点原子 发表于 2018-10-8 02:06
你先显示一张图片出来,剩下的就简单了。 你用的RGB屏,  LCD的扫描方向是固定的,你要注意下这个扫描放向的 ...

现在就是现实背景图片不正常,不知道是哪里计算不对。麻烦原子哥帮我看看内存画点函数slcd_draw_point和LDTC填充函数LTDC_Color_Fill地址偏移是否正确。
回复

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2018-6-16
在线时间
8 小时
 楼主| 发表于 2018-10-8 21:30:06 | 显示全部楼层
正点原子 发表于 2018-10-8 02:06
你先显示一张图片出来,剩下的就简单了。 你用的RGB屏,  LCD的扫描方向是固定的,你要注意下这个扫描放向的 ...

修改程序只显示一张1280*610的图片就正常。3.5帧1280*610的图片就不正常。
IMG_20181008_205453.jpg
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2018-10-9 02:08:48 | 显示全部楼层
330352350 发表于 2018-10-8 21:30
修改程序只显示一张1280*610的图片就正常。3.5帧1280*610的图片就不正常。

还是LCD扫描方式的问题
你得想清楚:屏幕固定式从左上角开始,扫描到右下角。
那么你想滑屏,就得把图片做适当的存放,然后滑动的时候,做适当的偏移。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2018-10-9 02:08:51 | 显示全部楼层
330352350 发表于 2018-10-8 21:30
修改程序只显示一张1280*610的图片就正常。3.5帧1280*610的图片就不正常。

还是LCD扫描方式的问题
你得想清楚:屏幕固定式从左上角开始,扫描到右下角。
那么你想滑屏,就得把图片做适当的存放,然后滑动的时候,做适当的偏移。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2019-8-12
在线时间
4 小时
发表于 2020-3-25 14:58:34 | 显示全部楼层
我最近也在改横屏,请问下您改好了吗?提供下帮助。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2019-7-29
在线时间
8 小时
发表于 2020-6-18 23:20:32 | 显示全部楼层
楼主,能讲下最后怎么改好的吗,我自己改了也没改好。
回复

使用道具 举报

5

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2018-8-1
在线时间
8 小时
发表于 2023-4-7 22:17:02 | 显示全部楼层
我也横屏改不了竖屏
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 13:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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