学习笔记--STM32F205+LCD

一、硬件平台

1、MCU

选用STM32F205

2、LCD

选用ILI9488驱动芯片,16位并口的LCD(自带显存),像素为480 X 320,大小为3.5寸。

3、其他

由于选用LCD自带显存,无需外加SDRAM。显示格式为RGB565格式。

二、软件配置

软件框架使用freeRTOS操作系统

1、FSMC驱动LCD原理

a、由于LCD自带显存,把LCD显存看成SRAM,可以理解为FSMC控制器上外挂了一个SRAM,只要配置好地址,FSMC就可以直接访问。值得注意的是,这个SRAM有2个地址,第一个地址为0x60000000,对于MCU来说是LCD的寄存器地址。第二地址是0x60020000,对于MCU来说是LCD的读写数据地址。

b、LCD上使用引脚有 RS、数据总线D0-D15、WR、RD、CS。其中特别注意的是LCD没有地址总线。硬件上LCD的RS引脚需要接到FSMC的A0上面,假如RS=0,就是写命令,RS=1,就是写数据。

2、初始化流程

a、初始化ILI9488 IO口

b、初始化FSMC(使能通过FSMC总线对显存屏的寄存器和数据进行读写),例子中使用的是 FSMC Bank1 (0x60000000 - 0x63FFFFFF)

c、初始化ILI9488的相关寄存器(寄存器地址相对MCU来说 0x60000000, 读写数据地址相对MCU来说 0x60020000)

d、开启背光(PWM)

e、重写 emWin 的 LCD_X_Config
–GUI_DEVICE_CreateAndLink()
–LCD_SetSizeEx()
–LCD_SetVSizeEx()
–GUIDRV_FlexColor_Config()
–GUIDRV_FlexColor_SetFunc()

f、由于带操作系统, 重写 emWin 的 GUI_X_Config
–GUI_ALLOC_AssignMemory();
–GUI_ALLOC_SetAvBlockSize();
–GUI_SetDefaultFont();

g、重写 emWin 的 LCD_X_DisplayDriver

三、其他知识点

1、RGB888和RGB565区别

RGB565是16位的,R-5位,G-6位,B-5位。

RGB888 是24位的,R、G、B各8位。

2、没有自带显存LCD驱动原理

a、需要MCU具有LTDC控制器,在STM32系列中,STM32F429级别以上的芯片才具有LTDC控制器。

b、需要MCU通过FSMC总线外接SDRAM,在SDRAM里面开辟显存区域。假如LCD像素大小 480 X 320,格式 RGB565,双缓冲情况下,则需要480 X 320 X 16 X 2大小显存。

c、在软件框架上需要特别注意,首先LTDC控制LCD时序,显存数据在SDRAM上面,MCU通过DM2D的方式不断地拿显存数据,然后通过LTDC把数据不断地刷新LCD显示。由于数据量特别大,经常容易造成总线仲裁冲突的问题。

欢迎技术交流QQ 736009573

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值