本帖最后由 wolfgang2015 于 2018-7-21 12:08 编辑 4 o, ~5 f! t, J" L) ]2 R. O" ~ 本文是续接上文的CubeMX设置内容,在PIN及硬件参数在上文设置好后,本文设置内容偏软件控制参数的内容 - J& d0 Z! @( v" U 1) LTDC配置 Parameter Settings配置如下图: Horizontal Synchronization Width水平同步宽度:2 表示水平同步(信号)宽度 Horizontal Back Porch水平后沿:1 表示从水平同步信号开始到一行的有效数据开始之间的VCLK的个数 Active Width有效宽度:400 Horizontal Front Porch水平前沿:1 表示一行的有效数据结束到下一个水平同步信号开始之间的VCLK的个数 Vertical Synchronization Height垂直同步高度:2 Vertical Back Porch垂直后沿:1 Active Height 有效高度:480 Vertical Front Porch 垂直前沿:1 Horizontal Synchronization polarity水平同步极性 :Active Low Vertical synchronization polarity垂直同步极性:Active Low Not data enable polarity非数据启用极性:Active Low Pixel clock polarity 像素时钟极性: Normal Input Layer Settings 配置如下图: Number of Layers层数 Number of Layers :层数 1 Layers a4 I7 `- G3 ~0 L" bWindows Position: 窗口位置 Layer0 – Window Horizoontal Start:窗口水平开始: 1 Layer0 –Window Horizontal Stop:窗口水平终止 400 Layer0 – Window Vertical Start:窗口垂直开始 1 Layer0 –Window Vertical Stop:窗口垂直终止 480 Pixel Parameters: 像素参数 Layer0 –Pixel Format 像素格式: RGB888 Blending: 掺混 Layer0 –alpha constant for blending 用于混合的Layer-0-α常数 Default Alpha value默认alpha值 Blending Factor 1 混合因子1 Blending Factor 2 混合因子2 5 ?5 P" i! M3 ?/ VFrame Buffer帧缓冲器 Layer0 – Color Frame Buffer Start Adress层0 -彩色帧缓冲开始地址 Layer0 –Color Frame Buffer Line Length (Image Width) 彩色帧缓冲器行长度(图像宽度) Layer0 –Color Frame Buffer Number of Lines (Image Height) 颜色帧缓冲器行数(图像高度) BackGround Color 背景色 Layer 0 第一层 Layer0 –Blue 蓝色 Layer0 –Green 绿色 Layer0 –Red 红色 使能 LTDC 全局中断 2) DSIHOST配置 DSI Clocks :在之前的时钟树中就配置好,这里保持默认 Timeout Counters :保持默认不变 Data and Clock Lanes: 数据时钟通道配置如下图: Basic Settings 基本设置 Number of Lanes: Two Data Lanes 根据原理图得知,启用了2条数据线 Automatic Clock LaneControl :自动始终通道控制: Clock Data Laneis always provided 时钟数据通道始终提供 Bus Turn AroundRequest is : Enabled 启用总线转向请求 Flow Control –Configuration流量控制-配置 CRC Reception 接收CRC : Disable 禁止 ECC Reception 接收ECC: Disable 禁止 EoTP Reception is 接收EoTP: Disable 禁止 EoTP transmission is 发送EoTP: Disable 禁止 Acknowledge Requestafter Each Transmission 每次传输后的应答请求: Enable使能 Flow Control – Packet analyzer configuration流量控制-包分析器配置 CRC Error Interrupt CRC错误中断: Disable 禁止 ECC Error InterruptECC错误中断: Disable 禁止 EoTP Error InterruptEoTP错误中断:Disable 禁止 Packet Size ErrorInterrupt 包大小错误中断:Disable 禁止 Acknowledge ErrorsInterrupt 应答错误中断:Disable 禁止 PHY Related ErrorsInterrupt PHY错误中断:Disable 禁止 PHY Timings :PHY周期设置: LP to HS and HS to LPTransitions Timings : LP到HS和HS到LP转换周期 Minimum wait periodto request a HS transmission after the Stop State (minest 1 cycle deescapeclock) 在停止状态后请求HS传输的最小等待周期(最小1周期解逸时钟) 10 lane Byte Clockcycles 10通道字节时钟周期 Commands 命令: APB Interface Error Configuration APB接口错误配置 Generic Command Error Interrupt 通用命令错误中断 : Disable禁用 Transmission Mode for Commands: 命令传输模式 Generic Short Write Zero Parameter通用短写零参数: LowPower Transmission 低功率传输 Generic Short Write OneParameter 通用短写一参数: Low Power Transmission 低功率传输 Generic Short Write TwoParameter通用短写二参数: Low Power Transmission 低功率传输 Generic Short Read ZeroParameter通用短读零参数: Low Power Transmission 低功率传输 Generic Short Read OneParameter通用短读一参数: Low Power Transmission 低功率传输 Generic Short Read TwoParameter通用短读二参数: Low Power Transmission 低功率传输 Generic Long Write 通用长写: Low Power Transmission 低功率传输 DCS Short Write Zero Parameter DCS短写零参数: Low Power Transmission 低功率传输 DCS Short Write One Parameter DCS短写一参数 Low Power Transmission 低功率传输 DCS Short Read Zero Parameter DCS 短读数零参数 Low Power Transmission 低功率传输 DCS Long Write DCS长写 Low Power Transmission 低功率传输 Maximum Read Packet SizeCommand 最大读取包大小命令 Low Power Transmission 低功率传输 . \ p$ F7 d, Y5 w9 M; fDisplay Interface 显示器接口 Basic Settings 基本设置 Display ID 显示ID :0 [虚拟通道ID必须在0到3之间] Color Coding 颜色编码: RGB888(24bits) – DSI Mode Specific Command Mode Settings 特定命令模式设置 Maximum Command Size 最大命令大小:400 Pixels The Refresh of the DisplayFrame Buffer is Iriggered 显示帧缓冲器的刷新歪曲 On a Tearing Effect Event 在分裂效应实践 Tearing effect Source 分裂效应源 External Source 外部源 Polarity of the ExternalTearing Effect Source 分裂事件源外部极性 Rising Edge 上升沿 NVIC Settings DSI Global Interrupt Enabled 勾选 $ w6 Z- N- y; F7 Z. B3 P3) FMC配置 SDRAM 1 SDRAM Control Bank 设定Bank号 SDRM Bank1 Number of columnaddress bits 列地址位 :8Bits Number of row addressbits 行地址位 : 12Bits CAS Latency 预充电时间 : 3Memory Clock Cycles Write Protection 写保护 : Disabled 禁止 SDRAM Common Clock SDRAM通用时钟 2HCLK Clock cycles SDRAM Common BurstRead SDRAM通用突发读模式: Enable SDRAM Common ReadPipe Delay SDRAM 通用AHB总线上读延迟: 0 HCLK clock cycle SDRAM timing in memory clock cycles SDRAM内存内部时钟周期时序 Load mode register toactive delay 装载寄存器到活动延迟:2 Exit self-refreshdelay 退出自动刷新延迟:7 Self-refresh time 自动刷新时间:4 SDRAM common RowCycle Delay SDRAM 公共行周期延迟:7 Write Recovery time 写恢复时间:3 SDRAM Common Rowprecharge Delay SDRAM公共行预充电延迟:2 Row to column delay 从行到列言辞:2 : v8 D8 a7 w/ T4 P- ^4) 图形中间件配置 Parameter Settings Stack Name and Version 堆栈名称和版本 Name :STemwin \\区别原生态emWin External Tool 外部工具 Use GUIBuilderTool 是否使用GUIBuilder 工具: 否(验证GUI功能先进禁用) Number of Layers 层数 Gui_num_layers (Setin LTDC) GUI层数(在LTDC中设置):1 Physical Display Size:物理显示尺寸 X Size (pixels) X像素大小: Y Siza (Pixels) Y像素大小: Display Driver 显示驱动 Layer0-DisplayDriver- Orientation 0层显示驱动方向: GUIDRV_LIN_24 Multiple Buffers – Virtual Screens 多重缓冲区-虚拟屏幕设置 Number of virtualScreens 虚拟屏幕数量: 1 Number of MultipleBuffers 多重缓冲区数量:1 Frame Buffer 帧缓冲器 Layer0-Color Conversion 0层颜色转换: GUICC_888 Layer0-LTDC Pixel Format(set inLTDC) 0层LTDC像素格式(在LTDC中设置) : LTDC_PIXEL_FORMAT_RGB888 Layer0-Color Frame BufferDepth(bpp) 0层帧缓冲深度(BPP):24 Layer0-Color Frame Buffer StartAddress(Set in LTDC) 0层帧缓冲器起始地址: 0xC000,0000 Layer1-Color Frame Buffer Depth(bpp)1层彩色帧缓冲深度(BPP): 0 GUI Memory size 图形用户界面内存大小设置 Number of Kbytes 字节数:110KB Memory size (byte): 112640Byte; General Settings 一般设置 FreeRTOS 是否使用: Disabled禁用 ZONE: 显示区域划分数量:2 GUI Parameters 图形用户界面参数 GUI RGB Ordering GUI RGB排序:ARGB GUI SpeedOptimization GUI速度优化:Enable GUI Default Font GUI默认字体:Font6x8 LCD Driver LCD驱动: Use LCD Screen 使用的LCD屏幕: OTM8009A OTM8009A Orientation OTM8009A定位:OTM8009A_ORIENTATION_LANDSCAPE OTM8009A PixelFormat OTM像素格式:OTM8009A_FORMAT_RGB888 SDRAM Instances SDRAM实例 SDRAM instance SDRAM实例: SDRAM1_BANK1 SDRAM Refresh Count SDRAM刷新计数: 1827 1 I6 T0 [6 U, U2 O2 q; E& gPlatform Settings: Names: LCD Reset Pin XRES IPs Or Components IPS或组件: GPIO:Output Found Solutions发现解决方案: PJ15 BSP API 驱动: * c5 Q ]2 i( Y: T( _# @, t9 k8 z$ O& O# o 5) Cortex_M7系统配置' F. Z, { m$ C# c5 | CPU ICache :使能 CPU Dcache :使能 & y8 k/ @2 j# \% s9 x2 M! f7 s 3 w1 u( k5 k) K& M$ U* q5 {: z+ n) R 6) NVIC系统中断配置 NVIC LTDC Global interrupt LTDC全局中断 Preemption Priority 等级15 7 g* N1 {$ D+ H& g6 V0 M! L4 }DSI Global Interrupt DSI全局中断 Preemption Priority 等级15 9 x$ p# K/ S2 f8 s0 T$ {7 S0 I3 ^0 H/ } 7) 设置项目生成的代码,并自动生成代码: 自动生成后的代码项目结构未下图: 其中几个目录值得注意: APP目录中是应用的目录,HelloWorld的输出在这里配置: 这行代码决定了输出的内容,代码区别原生态内容,增加几个!作为区别 Target目录为GUI黄金初始化目录 Drivers\BSP是板载驱动的目录 Middlewares 是GUI中间件STemWin中间件目录 ! V* ]( V6 Y* n$ C* a代码怎么不用修改,直接编译下载到目标板后,显示如下: & H+ x; c* k% n$ G/ ~; w5 ~ STM32F769I-DISCO开发板GUI学习内容(一)_课前知识预习6 t) o8 Z# K* L ^ STM32F769I-DISCO开发板GUI学习内容(二)_课前硬件基础- d M4 s1 f3 W" A STM32F769I-DISCO开发板GUI学习内容(三)_课前预习之CubeMX篇(上) STM32F769I-DISCO开发板GUI学习内容(四)_课后动手实验 % S; ^% e" w& I5 S 补充说明:1 @4 y9 a3 z. H0 c, [; s 这里要补充说一下:好像是Cubemx的BUG。图形中间件配置的配置里7 {# a. b. K6 U+ n 第4步里,如果LTDC中设置Wite小于Height时, OTM8009A_ORIENTATION_LANDSCAPE是灰色,不能选取; 6 l z4 W; {6 D8 B$ b 不影响代码的生成,但要在代码中修改下面这个初始化定义 . h4 F6 v# _6 L3 d) d 将:3 }4 G" J2 D7 o' f: y* N( m7 r OTM8009A_Init(OTM8009A_FORMAT, OTM8009A_ORIENTATION_PORTRAIT); 修改为:- U$ @% V+ ]/ D- r; Q OTM8009A_Init(OTM8009A_FORMAT, OTM8009A_ORIENTATION_LANDSCAPE);( P- h. ~: ?* _ -----HW_Init.c文件中 |
刘氓兔的杂谈【001】-片上USB 高速PHY
【STM32H7S78-DK评测】-5 LVGL&DMA2D DEMO测试
【STM32H7S78-DK评测】-4 LTDC&DMA2D 基本测试
【合集】STM32F7教程、资料大集合
STM32F3DISCOVERY + UCGUI3.90A的移植(源码+视频)
STM32MP135F-DK开发板评测-Linux系统下基于gtk的计算器应用
基于STM32F746G-Discover的扩展电路板
STM32MP135F-DK开发板评测-Linux系统下的GTK计算器
STM32MP135F-DK开发板评测-裸机LTDC亮屏
基于STM32GUI TouchGFX 屏幕切换功能经验分享
按照楼主介绍的方法配置后的效果:
2 V7 I$ j5 ^* G; I3 P% \
不知道哪里错了,请指教。$ o; I2 M9 U" ~
这里要补充说一下:好像是Cubemx的BUG。图形中间件配置的配置里3 @: H( T! l' ~7 E
有LTDC中,Wite小于Height时, OTM8009A_ORIENTATION_LANDSCAPE是灰色,不能选取;
不影响代码的生成,但要在代码中修改下面这个初始化定义
将:, n2 S/ d6 q! M) e
OTM8009A_Init(OTM8009A_FORMAT, OTM8009A_ORIENTATION_PORTRAIT);8 [4 v1 _ j- v7 ^& ^
修改为:
OTM8009A_Init(OTM8009A_FORMAT, OTM8009A_ORIENTATION_LANDSCAPE);# ` U. Q- y" a- N1 m
. M) C9 Z4 |) w+ k' S
-----HW_Init.c文件中& [% ^: T8 `. U/ I) Q- X
6 W( ]5 z, L+ O3 E8 v! S0 K
1 Q- K) G: Z) |4 n/ q2 U! I5 [! j
打开看,已经是楼主说的:- l) r) L0 J, t( V( V+ M9 \
OTM8009A_Init(OTM8009A_FORMAT, OTM8009A_ORIENTATION_LANDSCAPE);
你用的是769Disco?
是的。
CubeMX是4.26.0
HW文件的DSI初始化中。( F" z; w0 A% f5 f( k" Q. e
楼主什么时候移植DISCO触摸屏啊
触摸屏,最好带RTOS,裸奔容易出问题。
可能会有设备优先级的问题(猜测)