Hi3536的SDK定义了一些常见的分辨率,诸如3840X2160@30/1920X1080@60/3840X2160@60等:


typedef enum hiVO_INTF_SYNC_E {VO_OUTPUT_PAL = 0,VO_OUTPUT_NTSC,VO_OUTPUT_960H_PAL,              /* ITU-R BT.1302 960 x 576 at 50 Hz (interlaced)*/VO_OUTPUT_960H_NTSC,             /* ITU-R BT.1302 960 x 480 at 60 Hz (interlaced)*/VO_OUTPUT_1080P24,VO_OUTPUT_1080P25,VO_OUTPUT_1080P30,VO_OUTPUT_720P50, VO_OUTPUT_720P60,   VO_OUTPUT_1080I50,VO_OUTPUT_1080I60,    VO_OUTPUT_1080P50,VO_OUTPUT_1080P60,            VO_OUTPUT_576P50,VO_OUTPUT_480P60,VO_OUTPUT_640x480_60,            /* VESA 640 x 480 at 60 Hz (non-interlaced) CVT */VO_OUTPUT_800x600_60,            /* VESA 800 x 600 at 60 Hz (non-interlaced) */VO_OUTPUT_1024x768_60,           /* VESA 1024 x 768 at 60 Hz (non-interlaced) */VO_OUTPUT_1280x1024_60,          /* VESA 1280 x 1024 at 60 Hz (non-interlaced) */VO_OUTPUT_1366x768_60,           /* VESA 1366 x 768 at 60 Hz (non-interlaced) */VO_OUTPUT_1440x900_60,           /* VESA 1440 x 900 at 60 Hz (non-interlaced) CVT Compliant */VO_OUTPUT_1280x800_60,           /* 1280*800@60Hz VGA@60Hz*/    VO_OUTPUT_1680x1050_60,          /* VESA 1680 x 1050 at 60 Hz (non-interlaced) */VO_OUTPUT_1920x2160_30,          /* 1920x2160_30 */VO_OUTPUT_1600x1200_60,          /* VESA 1600 x 1200 at 60 Hz (non-interlaced) */VO_OUTPUT_1920x1200_60,          /* VESA 1920 x 1600 at 60 Hz (non-interlaced) CVT (Reduced Blanking)*/ VO_OUTPUT_2560x1440_30,          /* 2560x1440_30 */VO_OUTPUT_2560x1440_60,          /* 2560x1440_60 */VO_OUTPUT_2560x1600_60,          /* 2560x1600_60 */VO_OUTPUT_3840x2160_25,          /* 3840x2160_25 */VO_OUTPUT_3840x2160_30,          /* 3840x2160_30 */VO_OUTPUT_3840x2160_50,          /* 3840x2160_50 */VO_OUTPUT_3840x2160_60,          /* 3840x2160_60 */VO_OUTPUT_USER,VO_OUTPUT_BUTT   } VO_INTF_SYNC_E;

但是它不一定都满足我们的需求,譬如,给LED屏幕显示,分辨率可能是奇怪的,那么怎么办呢?

不用担心,海思提供了接口供我们解决这类问题,就是VO_OUTPUT_USER,即自定义输出时序。下面给出一个例子:

static HI_S32 SAMPLE_COMM_VO_StartDev2(VO_DEV VoDev, VO_PUB_ATTR_S *pstPubAttr, HI_S32 u32Fps)
{HI_S32 s32Ret = HI_SUCCESS;s32Ret = HI_MPI_VO_SetPubAttr(VoDev, pstPubAttr);...//设置用户时序下的设备输出帧率(文档要求)s32Ret = HI_MPI_VO_SetDevFrameRate(VoDev, u32Fps); //该接口只能配置为25、30、50、60...s32Ret = HI_MPI_VO_Enable(VoDev);...return s32Ret;
}HI_S32 HiUsrDisplayTimingConfig(USR_DISPLAY_TIMING_S *pstTiming)
{HI_S32 s32Ret = -1;VO_DEV voDev = SAMPLE_VO_DEV_DHD0;VO_LAYER voLayer = SAMPLE_VO_LAYER_VHD0;VO_PUB_ATTR_S stVoPubAttr;VO_VIDEO_LAYER_ATTR_S stVoLayerAttr;memset(&stVoPubAttr,0,sizeof(VO_PUB_ATTR_S));memset(&stVoLayerAttr,0,sizeof(VO_VIDEO_LAYER_ATTR_S));stVoPubAttr.enIntfSync = VO_OUTPUT_USER;  //接口时序类型stVoPubAttr.enIntfType = VO_INTF_HDMI;    //接口类型stVoPubAttr.u32BgColor = 0x000000ff;      //设备背景色stVoPubAttr.stSyncInfo.bSynm = HI_FALSE;  //保留字段stVoPubAttr.stSyncInfo.u8Intfb = 8;       //保留字段stVoPubAttr.stSyncInfo.bIdv = HI_FALSE;   //保留字段stVoPubAttr.stSyncInfo.bIop = pstTiming->bIop;        //逐行或隔行扫描stVoPubAttr.stSyncInfo.u16Vact = pstTiming->u16Vact;  //垂直有效区域stVoPubAttr.stSyncInfo.u16Vbb = pstTiming->u16Vbb;    //垂直消隐后肩stVoPubAttr.stSyncInfo.u16Vfb = pstTiming->u16Vfb;    //垂直消隐前肩stVoPubAttr.stSyncInfo.u16Hact = pstTiming->u16Hact;  //水平有效区域stVoPubAttr.stSyncInfo.u16Hbb = pstTiming->u16Hbb;    //水平消隐后肩stVoPubAttr.stSyncInfo.u16Hfb = pstTiming->u16Hfb;    //水平消隐前肩stVoPubAttr.stSyncInfo.u16Hpw = pstTiming->u16Hpw;     //水平同步宽度 stVoPubAttr.stSyncInfo.u16Vpw = pstTiming->u16Vpw;     //垂直同步宽度stVoPubAttr.stSyncInfo.bIhs = pstTiming->bIhs;         //hs极性stVoPubAttr.stSyncInfo.bIvs = pstTiming->bIvs;         //vs极性//隔行扫描相关参数stVoPubAttr.stSyncInfo.u16Hmid = pstTiming->u16Hmid;stVoPubAttr.stSyncInfo.u16Bvact = pstTiming->u16Bvact;stVoPubAttr.stSyncInfo.u16Bvbb = pstTiming->u16Bvbb;stVoPubAttr.stSyncInfo.u16Bvfb = pstTiming->u16Bvfb;s32Ret = SAMPLE_COMM_VO_StartDev2(voDev, &stVoPubAttr, pstTiming->u32Fps);//根据像素时钟,设置vpll0寄存器的参数SetVpll0(pstTiming->u32PixelClock);s32Ret = SAMPLE_COMM_VO_HdmiStart(VO_OUTPUT_3840x2160_30); //使用VO_OUTPUT_3840x2160_30做个样子即可...stVoLayerAttr.bClusterMode = HI_FALSE;stVoLayerAttr.bDoubleFrame = HI_FALSE;stVoLayerAttr.enPixFormat = PIXEL_FORMAT_YUV_SEMIPLANAR_420;stVoLayerAttr.stDispRect.u32Width = pstTiming->u16Hact;stVoLayerAttr.stDispRect.u32Height =  pstTiming->u16Vact;stVoLayerAttr.u32DispFrmRt = pstTiming->u32Fps;stVoLayerAttr.stImageSize.u32Width =  stVoLayerAttr.stDispRect.u32Width ;stVoLayerAttr.stImageSize.u32Height = stVoLayerAttr.stDispRect.u32Height ;s32Ret = SAMPLE_COMM_VO_StartLayer(voLayer, &stVoLayerAttr);...s32Ret = SAMPLE_COMM_VO_StartChn(voLayer, VO_MODE_1MUX);return s32Ret;
}//使用参考:
USR_DISPLAY_TIMING_S stTiming[] =
{[0] = {.u32Fps = 60        , //帧率,只能配置为25、30、50、60.u32PixelClock = 101000  , //像素时钟101MHz(REDUCED BLANKING) .bIop = 1              , //逐行扫描.u16Vact = 1050    , //垂直有效区域.u16Vbb = 23         , //垂直消隐后肩.u16Vfb = 3          , //垂直消隐前肩.u16Hact = 1400      , //水平有效区域.u16Hbb = 80         , //水平消隐后肩.u16Hfb = 48         , //水平消隐前肩.u16Hpw = 32         , //水平同步宽度.u16Vpw = 4          , //垂直同步宽度.bIhs   = 0           , //hs极性 0为高有效,1为低有效.bIvs   = 1           , //vs极性 0为高有效,1为低有效},[1] = {.u32Fps = 60         , //帧率,只能配置为25、30、50、60.u32PixelClock = 148500  , //像素时钟148.5MHz.bIop = 1             , //逐行扫描.u16Vact = 1080    , //垂直有效区域.u16Vbb = 36         , //垂直消隐后肩.u16Vfb = 4          , //垂直消隐前肩.u16Hact = 1920      , //水平有效区域.u16Hbb = 148        , //水平消隐后肩.u16Hfb = 88         , //水平消隐前肩.u16Hpw = 44         , //水平同步宽度.u16Vpw = 5          , //垂直同步宽度.bIhs   = 0           , //hs极性 0为高有效,1为低有效.bIvs   = 0           , //vs极性 0为高有效,1为低有效},// ...//...
};USR_DISPLAY_TIMING_S *pstTiming = &stTiming[1];HiUsrDisplayTimingConfig(pstTiming);

上面的代码完全就是按照海思SDK里01.software/board/document_cn/《HiMPP V3.0 媒体处理软件 FAQ.pdf》文档的”3.6 如何设置VO的用户时序“章节的描述写出来的,包括各参数意义说明、vpll0配置方法以及VO帧率设置,我并没有创新之处!

Vpll0的配置参考文章《https://blog.csdn.net/litao31415/article/details/107326413》,

以及SDK提及的:


————————————————
本文参考:https://blog.csdn.net/litao31415/article/details/107331501,如有侵权请联系小编,小编会第一时间删除

设置海思的HDMI2.0自定义显示时序-Hi3536相关推荐

  1. 设置海思芯片MMZ内存、OS内存详解

    1.前言 (1)本文是基于hi3516dv300芯片的uboot和内核进行讲解: (2)dv300芯片的板子上实际接了2G内存,dv300芯片实际最大也只支持2G内存: 2.hi3516dv300芯片 ...

  2. 如何设置海思开发板的静态IP

    前言 每个类型的开发板设置静态IP(即每次系统boot起来后,ip自动设成想要的IP,不需要每次手动敲入命令ifconf eth0 xxx)的方式不太一样.本文主要是讲海思开发板的设置. 方法 板子的 ...

  3. echart树图设置层级距离_echarts2 tree树图自定义显示缩放大小、位置

    <> 看到网上关于echarts tree的资料有点少,做项目恰巧遇到这个,把一些获得分享给大家. 从echarts.官方API中我们似乎只能定义根节点的位置,并不能指定树图整体的大小以及 ...

  4. 表格里怎么不显示excl服务器,表格里0不显示怎么设置_excel表格中0不显示的设置步骤-win7之家...

    大家在编辑excel表格的时候,经常会输入数值0,然而有些用户有时候会想要设置excel数值为0不显示,但是却不知道要怎么下手,那么表格里0不显示怎么设置呢?方法有三种,接下来win7之家小编给大家讲 ...

  5. 灵派海思SDK的API参考手册

    本手册镜像地址:https://gitee.com/LinkPi/LinkLib/wikis/pages 灵派海思SDK的API参考手册 1. 概述 基本接口详解 LinkObject Link Js ...

  6. html excel零不显,Excel数值为0不显示的三种解决方法

    excel数值为0不显示方法一: 如下图所示,我们想要将excel单元格里面的0不显示出来,如右图所示. 单击"EXCEL选项-高级-此工作表的显示选项-不勾选"在具有零值的单元格 ...

  7. 海思芯片MPP模块——视频缓存池机制介绍

    1.前言 本文是根据hi3518ev200芯片的SDK包中MPP手册进行讲解,如果想要通过第一手资料了解更多细节,请自行阅读<HiMPP IPC V2.0 媒体处理软件开发参考.pdf>: ...

  8. 华为电视再传消息,海思正在研发相关芯片

    供应链消息称,电视终端产品作为继智能手机之后的第二大应用市场. 最近,关于华为要做电视的传闻甚嚣尘上,一边是华为消费者业务CEO余承东否认华为做电视,另一边又是供应链消息打脸.据台湾当地媒体25日的报 ...

  9. 海思芯片的选型及特征参考说明大全

    参考地址 海思芯片的选型及特征参考说明大全 华为 海思半导体(Hisilicon) 监控设备 hi3516型号-特征 华为 海思半导体(Hisilicon) 监控设备 Hi3516EV100& ...

最新文章

  1. java反射中,Class.forName和classloader的区别
  2. JavaScript 开发进阶:理解 JavaScript 作用域和作用域链(上)
  3. NodeJS加MongoDB应用入门
  4. SAP BTP SDK for iOS 介绍
  5. 数据库服务器网页,服务器 数据库 网页前端
  6. linux安装mysql 5.6_linux 安装mysql5.6
  7. 设计模式学习笔记五——Prototype模式
  8. VSCode 代码风格统一设置eslint + stylelint
  9. 聚类算法_案例实战:聚类实战
  10. 一个特殊的List去重问题的解决方案
  11. opencv4找不到opencv2/core/core.hpp: No such file or directory
  12. 如何设置EditPlus的默认编码utf-8方式
  13. LaTeX语法环境配置:TeXLive + WinEdt
  14. 七夕烟花c语言程序,C语言七夕必备神器,待那烟花灿烂时,依旧做个单身狗
  15. java休闲游戏背景音乐推荐_休闲益智类游戏背景音乐推荐
  16. 软件工程第一次作业 192402 20194653 徐伟刚
  17. 网络信息安全 一场没有硝烟的战争
  18. 《声声慢·寻寻觅觅》 李清照
  19. word如何转excel
  20. 开发人员(程序员)怎么写技术文档

热门文章

  1. 2023年最新自动化/控制保研夏令营预推免经验贴(清华/自动化所/浙大/上交)
  2. 如何满足从Jama需求到测试和代码的可追溯性?
  3. win7 笔记本 做WIFI热点的设置
  4. python语言如何画圆_怎么用python画圆
  5. 【数据结构与算法】力扣:二叉树的前、中、后序遍历
  6. Qt QWebChannel web端js与C++交互
  7. ds5100更换电池 ibm_IBM DS   中低端存储部件更换手册(v 150227)
  8. android 张口逐帧动画,Android中实现一个简单的逐帧动画(附代码下载)
  9. 透明漂亮的桌面天气预报工具-中国农历天气预报1.6.1
  10. cad剖切线的快捷键_CAD剖切快捷键命令(剖切命令怎么用)