当前位置: 首页 > news >正文

嵌入式 - ARM8

一、LCD

1. 指标

1. 分辨率

        水平像素数  K / 垂直像素数  p        
1K / 720p  :1280 * 720                   - 1K(1280 ≈ 1000)
2K / 1080p:1920 * 1080                 - 2K(1920 ≈ 2000)
4K / 2160p:4096 * 2160                 - 4K(4096 ≈ 4000)

2. 帧率 / 刷新率

        fps - frames per second
帧率越高,动态显示越流畅,一般有30fps,60fps,120fps,144fps

3. 色域

        RGB加色模型
RGB:   888 = 2^8 * 2^8 * 2^8 ≈ 1600w种颜色,每种颜色域范围为0 ~ 255
ARGB色彩模型 - A不透明度
ARGB:8888 = 2^8 * 2^8 * 2^8 * 2^8 ≈ 43y种颜色

2. 开发板

同步半双工并行

DE (data enable)     数据使能
VSYNC / HSYNC    行列(场)同步
PCLK                       像素时钟

31 MHz的像素时钟

3. 配置

1. 配置引脚功能

24根数据线 + DE / VSYNC / HSYNC / PCLK        (RGB:2^8 * 2^8 * 2^8,即3*8 = 24根) 

电气配置为1011 1001 = 0xB9

2. 配置LCD时钟

1. 配置分频器

选择PLL5 - VIDEOn

将24M配置为31MHz的时钟

24 * 31 = 744

即倍频至744M,然后使两个分频器相乘为24即可配置成功

CSCDR2② 和 CDCMR③ 均可配置到 8 (divide by)

① CSCDR2[LCDIF1_PRE_CLK_SEL] 选择PLL5,                配置为010

② CSCDR2[LCDIF1_PRED] 设置为 4 分频,                         配置为011

③ CBCMR[CLDIF1_PORE] 设置为 6 分频,                          配置为101

④ CSCDR2[LCDIF1_CLK_SEL] 选择CLDIF1 clock,            配置为000

2. 时钟计算18.5.1.3.4

即24 = 31 * (DIV_SELECT + NUM / DENOM)

配平置DIV_SELECT为31,NUM为0,DENOM为1

DIV_SELECT配置        18.7.11

NUM置0                        18.7.12

DENOM置1                18.7.13

3. 配置LCD参数 - 场行

1. 定义结构体设置时钟参数

2. 其他寄存器配置

LCDIF->CTRL

LCDIF->CTRL1        配置为0x7(注意清零

LCDIF->TRANSFER_COUNT        低位配置width,高位配置height

LCDIF_CUR_BUF        在内存中定义一个起始地址

LCDIF_NEXT_BUF        配置同当前地址

LCDIF_VDCTRL0

LCDIF->VDCTRL1

LCDIF->VDCTRL2

LCDIF_VDCTRL3

LCDIF_VDCTRL4

4. 实现清屏

void lcd_clear(void)
{unsigned int *p = (unsigned int *)lcd_info.cur_frame_addr;int i = 0;int j = 0;for(j = 0; j < lcd_info.height; j++){for(i = 0; i < lcd_info.width; i++){*p++ = 0xffff;}}
}

http://www.dtcms.com/a/391089.html

相关文章:

  • MongoDB备份数据库
  • 【OpenGL】LearnOpenGL学习笔记23 - ShadowMap、PCF
  • MongoDB文档规范
  • 让设计、办公、创作效率翻倍的技术文章大纲
  • 能不能写一个linux下类vim的编辑器
  • Linux02: 编辑器nano的常用技巧
  • UDP和TCP对比通俗讲解
  • 【ReText】1.3 Python multiprocessing 库详解
  • Liunx系统下出现“Could not resolve host: mirrorlist.centos.org; 未知的错误”地解决方案
  • CentOS Stream 9安装系统(LVM扩容案例)
  • Docusign AI 全球化:构建安全、合规的多语言协议管理
  • C# 基于halcon的视觉工作流-章37-零件测量
  • 第二部分:VTK核心类详解(第38章 vtkPointData点数据类)
  • 木卫四科技 × 一汽解放商用车开发院: 共驱商用车 AI 研发新程
  • 【C++闯关笔记】STL:stack与queue的学习和使用
  • [HCTF 2018] WarmUp
  • Vue 学习随笔系列二十六 —— 动态表头
  • BIM 可视化运维平台 + IBMS 中央集成系统一体化解决方案:构建虚实融合的智慧运营中枢
  • XSUN_DESKTOP_PET(桌面宠物)
  • 具身智能VR遥操开发记录
  • 构建AI智能体:三十八、告别“冷启动”:看大模型如何解决推荐系统的世纪难题
  • [重学Rust]之结构体打印和转换
  • 数据结构(陈越,何钦铭) 第十一讲 散列查找
  • 2025年JBD SCI2区TOP,基于改进蚁群算法的应急路径规划,深度解析+性能实测
  • UIKit-layer
  • 一物一码公司推荐再互动平台
  • Wireshark捕获MQTT报文
  • Docker镜像核心作战手册:镜像命令全解析+离线迁移实战+压缩共享储存,打造无缝跨环境部署!
  • Static Deinitialization Order Fiasco
  • 如何使用 Qt Creator 高效调试