显示屏的方向设置问题

此文基于stm32F429原子的例程,stm32F429自带LTDC液晶控制器,底层驱动在"ltdc.c"中配置。

1. 在不用emwin显示的情况下,如果想任意设置屏幕的显示方向,则应该更改文件"ltdc.c"中的打点函数,想怎么显示修改代码

lcdltdc.pixsize*(lcdltdc.pwidth*y+x)

lcdltdc.pixsize*(lcdltdc.pwidth*(lcdltdc.pheight-x)+y)

lcdltdc.pixsize*(lcdltdc.pwidth*(272-y)+(480-x))

lcdltdc.pixsize*(lcdltdc.pwidth*(lcdltdc.pheight-x-1)+y)

//画点函数
//x,y:坐标
//color:颜色值
void LTDC_Draw_Point(u16 x,u16 y,u32 color)
{ 
#if LCD_PIXFORMAT==LCD_PIXFORMAT_ARGB8888||LCD_PIXFORMAT==LCD_PIXFORMAT_RGB888
	if(lcdltdc.dir)	//横屏
	{
        *(u32*)((u32)ltdc_framebuf[lcdltdc.activelayer]+lcdltdc.pixsize*(lcdltdc.pwidth*y+x))=color;
	}else 			//竖屏
	{
        *(u32*)((u32)ltdc_framebuf[lcdltdc.activelayer]+lcdltdc.pixsize*(lcdltdc.pwidth*(lcdltdc.pheight-x)+y))=color; 
	}
#else
	if(lcdltdc.dir)	//横屏
	{
        *(u16*)((u32)ltdc_framebuf[lcdltdc.activelayer]+lcdltdc.pixsize*(lcdltdc.pwidth*y+x))=color;
	}else 			//竖屏
	{
        *(u16*)((u32)ltdc_framebuf[lcdltdc.activelayer]+lcdltdc.pixsize*(lcdltdc.pwidth*(lcdltdc.pheight-x-1)+y))=color; 
	}
#endif
}


2.使用emwin时,应该在emwin的相应的LCD配置文件LCDConf_中修改LCD_X_Config()函数,参考emwin5手册中的“显示驱动”一章节中的“通过函数配置显示方向”这一节,大概在800多页。

修改代码

  GUI_SetOrientation(GUI_SWAP_XY|GUI_MIRROR_Y);

 GUI_SetOrientation(GUI_MIRROR_X|GUI_MIRROR_Y);           

//配置程序,用于创建显示驱动器件,设置颜色转换程序和显示尺寸
void LCD_X_Config(void) 
{
    uint32_t i;
  
    LCD_LL_Init ();                                 //LCD底层驱动(LTDC中断设置和DMA2D初始化)
#if (NUM_BUFFERS>1)                                 //多缓冲
    for (i=0;i<GUI_NUM_LAYERS; i++) 
    {
        GUI_MULTIBUF_ConfigEx(i, NUM_BUFFERS);
    }
#endif
    //设置第一层
    GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER_0,COLOR_CONVERSION_0,0,0);//创建显示驱动器件
    GUI_SelectLayer(0);     //选中第0层
    if(lcddev.dir==0)//竖屏
    {
        LCD_SetSizeEx(0,lcddev.height,lcddev.width);    //设置可见区尺寸
        LCD_SetVSizeEx(0,lcddev.height,lcddev.width*NUM_VSCREENS);   //设置虚拟显示区尺寸
        GUI_SetOrientation(GUI_SWAP_XY|GUI_MIRROR_Y);                   //设置为竖屏
    }else            //横屏
    {
    	LCD_SetSizeEx(0,lcddev.width,lcddev.height);    //设置可见区尺寸
        LCD_SetVSizeEx(0,lcddev.width,lcddev.height*NUM_VSCREENS);   //设置虚拟显示区尺寸
	GUI_SetOrientation(GUI_MIRROR_X|GUI_MIRROR_Y);            //设置为反向//屏幕方向设置

    }
    GUI_TOUCH_Calibrate(GUI_COORD_X,0,lcddev.width,0,lcddev.width-1);   
    GUI_TOUCH_Calibrate(GUI_COORD_Y,0,lcddev.height,0,lcddev.height-1);
#if (GUI_NUM_LAYERS>1)
  
    //设置第二层
    GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER_1,COLOR_CONVERSION_1,0,1);
    GUI_SelectLayer(1);     //选中第1层
    if(lcddev.dir==0)//竖屏
    {
        LCD_SetSizeEx(1,lcddev.height,lcddev.width);    //设置可见区尺寸
        LCD_SetVSizeEx(1,lcddev.height,lcddev.width*NUM_VSCREENS);   //设置虚拟显示区尺寸
        GUI_SetOrientation(GUI_SWAP_XY|GUI_MIRROR_Y);                   //设置为竖屏
    }else            //横屏
    {
    	LCD_SetSizeEx(1,lcddev.width,lcddev.height);    //设置可见区尺寸
        LCD_SetVSizeEx(1,lcddev.width,lcddev.height*NUM_VSCREENS);   //设置虚拟显示区尺寸
	GUI_SetOrientation(GUI_MIRROR_X|GUI_MIRROR_Y);        //设置为反向//屏幕方向设置

    }
    GUI_TOUCH_Calibrate(GUI_COORD_X,0,lcddev.width,0,lcddev.width-1);   
    GUI_TOUCH_Calibrate(GUI_COORD_Y,0,lcddev.height,0,lcddev.height-1);
#endif
  
    layer_prop[0].address=LCD_LAYER0_FRAME_BUFFER;           //缓冲区
#if (GUI_NUM_LAYERS>1)
    layer_prop[1].address=LCD_LAYER1_FRAME_BUFFER;     
#endif
    
    for (i=0;i<GUI_NUM_LAYERS;i++) 
    {
        layer_prop[i].pColorConvAPI=(LCD_API_COLOR_CONV *)apColorConvAPI[i];
        layer_prop[i].pending_buffer=-1;
        LCD_SetVRAMAddrEx(i,(void *)(layer_prop[i].address));
        layer_prop[i].BytesPerPixel=LCD_GetBitsPerPixelEx(i) >> 3;
        LCD_SetDevFunc(i,LCD_DEVFUNC_COPYBUFFER,(void(*)(void))CUSTOM_CopyBuffer);
        LCD_SetDevFunc(i,LCD_DEVFUNC_COPYRECT,(void(*)(void))CUSTOM_CopyRect);
        if (LCD_LL_GetPixelformat(i)<=LTDC_PIXEL_FORMAT_ARGB4444) 
        {
            LCD_SetDevFunc(i,LCD_DEVFUNC_FILLRECT,(void(*)(void))CUSTOM_FillRect);
            LCD_SetDevFunc(i,LCD_DEVFUNC_DRAWBMP_8BPP,(void(*)(void))LCD_DrawBitmap8bpp);
        }
        if(LCD_LL_GetPixelformat(i)==LTDC_PIXEL_FORMAT_RGB565) 
        {
           LCD_SetDevFunc(i,LCD_DEVFUNC_DRAWBMP_16BPP,(void(*)(void))LCD_DrawBitmap16bpp);    
        }
        GUICC_M1555I_SetCustColorConv(Color2IndexBulk_M1555IDMA2D,Index2ColorBulk_M1555IDMA2D); 
        //GUICC_M565_SetCustColorConv(Color2IndexBulk_M565DMA2D,Index2ColorBulk_M565DMA2D);  
        GUICC_M4444I_SetCustColorConv(Color2IndexBulk_M4444IDMA2D,Index2ColorBulk_M4444IDMA2D); 
        GUICC_M888_SetCustColorConv(Color2IndexBulk_M888DMA2D,Index2ColorBulk_M888DMA2D);   
        GUICC_M8888I_SetCustColorConv(Color2IndexBulk_M8888IDMA2D,Index2ColorBulk_M8888IDMA2D);
        GUI_SetFuncAlphaBlending(DMA2D_AlphaBlending);                                            
        GUI_SetFuncGetpPalConvTable(_LCD_GetpPalConvTable);
        GUI_SetFuncMixColors(DMA2D_MixColors);
        GUI_SetFuncMixColorsBulk(LCD_MixColorsBulk);
    }
}



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HD2010操作说明(HD2010 operating instructions) ⅰ.软件安装(Installed software) 双击光盘HD2010 V2.0目录下的安装文件图标 ,将控制系统安装到个人电脑.如下图2-1 (Open Profile HD2010 V2.0 in the compact disk,Dblclick Installed the HD2010 V2.0 in your personal computer.As shown in Figure 2-1) 图(Figure)2-1 点击确定后进入下一步如图2-2 (Click确定intro- next step.As shown in Figure 2-2 ) 图(Figure)2-2 点击下一步后进入下一步(英文环境)在中文环境直接点击下一步完成安装)如图2-3 2-4 2-5 2-6 2-7 (Click next intro- next step.As shown in Figure 2-3 2-4 2-5 2-6 2-7) 图(Figure)2-3 注意:发送的文件保存在安装目录下的ProjFile文件夹里,点击下一步完成安装 (Announcements:The file what you send saved in the ProjFile in path of Install.And click next to install and finish) 图(Figure)2-4 图(Figure)2-5 图(Figure)2-6 安装最后一步如图2-7 (The final step of install. As shown in Figure 2-7) 图(Figure)2-7 点击完成打开软件主界面如图2-8 (Click finish open main interface of the software. As shown in Figure 2-8) ⅱ.软件设置Setting software) ⅱ.ⅰ主界面如图2-8(Main interface.As shown in Figure 2-8) 图(Figure)2-8 ⅱ.ⅱ软件属性(Software properties) 1.文件菜单(File menu) a.新建--新建一个新的显示屏(New—Create a new screen) b.打开--打开一个显示屏(Open—Open a exist screen) c.保存--保存建立的文件(Save—Save file) d.另存为--保存副本(Save as—save a copy) e.导出.hds--导出.hds文件,用于u盘读取文件 (Export.hds—Export.hds file,for usb reading) f.退出--退出软件(Exit—Exit the software) 2.设置菜单(Settings menu) a.屏参设置--设置显示屏属性 (Screen settings—Display Screen configuration attributes) b.通信设置--通信端口/方式设置 (Communication settings—Set Communication prot and fashion) c.系统设置--配置系统默认项 (System settings—Set the acquice properties of software) 3.操作菜单(Operate menu) a.发送项目--发送节目(Send project—send the programmes) b.导出到U盘--把节目导入到U盘 (Export to U disk—send the programme to your U disk) c.时间设置--时间校对 (Time setting—get the right time im your computer) d.亮度设置--选择亮度模式 (Luminance setting—Choice the module of Luminance) e.固件更新--固件升级(Update Firmware—Update your controller Firmware) 4.语言菜单(Language menu) a.简体中文(Simplified Chinese) b.繁体中文(Chinese Traditional) c.英语(English) ⅱ.ⅲ节目编辑(Edit
LED电子显示屏设计方案 LED电子显示屏 设计方案 第一篇 系统设计方案 一、指导思想 1 、概述 智能化建筑是信息时代的必然产物, 是高科技与现代建筑的巧妙集成,它已成为综合经济国力的具体表征和形象标志;智能 建筑是今后建筑现代化的重要发展方向,成为21世纪建筑发展的主流。LED显示系统作为 现代化管理的主要系统,是智能建筑的重要组成部分。 ************是市民的室外活动中心,搞好信息宣传和信息服务工作至关重要。为了更 加方便、直观的同前来商城的顾客的信息交流,设置一套功能完善,设备先进的LED显示 系统,是非常至关重要的。青岛山海天科技有限公司对本系统的设计。是根据******人 民广场的实际,利用高科技手段,综合运用当今世界计算机控制、多媒体技术和图象处 理等手段实现现代化LED管理的目的。 2 、设计目标 采用室外双基色基色高亮度图像显示方案, 全套系统采用优质材 料。 设置音频系统满足播放视频与音频同步的需要。 满足全天候播放、观看的要求。 显示格式与视频系统及计算机系统完全兼容。 采用模块化设计, 具有很高可靠性和易维护。 24 小时可连续播放,水平视角可达120 度。 采用高档材料和技术,屏体薄, 无须屏后机房, 美观、管理方便。 150 米远程控制,无须中继。 二、系统配置依据 系统配置依据本方案是根据贵方提供的数据和要求以及现场勘察及依据国家行业有关规 定而设计的。 GB2423.1-89 电工电子产品基本环境试验规程试验A:低温试验方 法 GB2423.2-89 电工电子产品基本环境试验规程试验B: 高温试验方法 GB2423.3-89 电工电子产品基本环境试验规程试验Ca 恒定湿热试验方 法 GB4943-95 信息技术设备( 包括电气事务设备) 的安全 GB6388-86 运输包装收发货标志 GB6587.4-86 电子测量仪器振动试验 GB6587.6-86 电子测量仪器运输试验 GB6593-86 电子测量仪器质量检验规则 GB9813-88 微型数字电子计算机通用技术条件 GB11463-89 电子测量仪器可靠性试验 SJ/T10463-93 电子测量仪器包装、标志、贮存要求 三、 统构成及功能 1 、系统构成 山海天科技与相关厂家合作致力于LED产品的开发、生产、销售与服务。公司经过多年的 努力, 在LED 显示屏行业中拥有相当的实力和声誉。先进的生产设备、雄厚的技术力量,科学的管理 体系,为满足不同顾客的需求,提供了可靠的保证。产品的设计、生产、( 室内、外全彩、伪彩)运用ZQL9701 超大规模芯片。丰富的软件设计,真正的256 级灰度视频屏使画面更清洗、色彩更逼真!显示系统被广泛应用于金融系统、证券营业 部、期货交易所、商业、交通、电信、邮政、电力系统、体育场馆、国家机关的人事机 构。青岛山海天科技有限公司,本着质量第一、信誉至上、价格优惠的原则, 为用户推荐与国际技术同步,在国内领先的优质产品。 我们所推荐的LED 显示屏采用国际先进的晶体管集成电路及发光管,均采用进口原装器件,质量可靠、性 能稳定。根据******人民广场的要求,我们设计方案为高7 米X 宽9.4 米, 共65.8 平方米, 并配备专业音响,主要用于播放文字信息和电视广告,为了能够播放电视节目,在中心 计算机上安装了电视卡和DVD 光驱, 可以播放电视、VCD 和DVD节目;显示屏安装在广场中心位置,采用立装的形式,我们设计显示屏安装高度为 3.5 米以上,达到最好的视觉效果。控制室设在附近中心房间里,我们的线缆将通过预埋的形 式进入控制室,做到从外边看不到线缆, 保证外表美观。为了保证电子显示屏的运行安全,我们在电子屏的 四面均设计了针孔摄象机,可以在控制中心随时观察收看的人数,并防止认为破坏,为了保 障电子屏符合室外全天候播放, 在电子屏箱内设计了自动运行的排风系统,当箱内温度达到设定温度时, 风扇自动开始工作。显示屏的电源由控制室统一供电,音箱和监控系统也由控制室统一 管理。本系统由两大部分构成:一是显示部分,二是控制部分。主要由数据采集器、帧 控制器、长线接收卡、行控器及显示单元组成。标准的系统结构图。 2 、系统功能说明: 我们推荐的LED 显示系统产品为室外全彩色256 级灰度视频屏, 工作原理说明:数据采集器从显示卡上获取显示数据并转化为帧控制器所需的数据格式 ;帧控制器从数据采集器上获得数字化的显示信号后,经过筛选、拾取后,将需要在LE D 显示屏上显示的内容转换为扫描板所需要的数据格式。也就是说,帧控制器将计算机的 标准接口( 如ISA 总线、加强并口等) 获取控制信号,使用户能通过计算机的应用软件(LED 管理工具)完成对LED 屏的控制和调节,使帧控制器不但能适应各种不同规格的LED

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值