STM32
直播中

江左盟

9年用户 1510经验值
擅长:电源/新能源
私信 关注
[问答]

STM32是怎样通过8080接口向LCD屏发送指令和数据的

STM32上的TFTLCD屏有何特点?
TFTLCD屏的工作原理是什么?
STM32是怎样通过8080接口向LCD屏发送指令和数据的?


回帖(1)

李建华

2021-12-15 11:42:26
LCD屏的知识


1、常见的显示设备和LCD屏

  LED -- 广告牌(在项目板做指示灯)
  数码管 - 电子称(数字)
  LED点阵屏 -- 8*8点阵(户外)--户外大型显示
  LCD屏 ---彩色:TFTLCD屏
2、STM32上TFTLCD的介绍

TFLCD屏是stm32外扩的设备
1.作用:输出设备(提供人机交换界面)
2.特点:
    1、TFTLCD--薄膜晶体管液晶显示器--真彩液晶显示器
         2、2.8寸的TFTLCD
3、显示分辨率:320×240个像素点--像素点:LCD屏上显示的最小单元。
         4、16位真彩显示
3.显示的原理:通过操作显存RAM(传输的每个像素点的颜色值),来操作                                LCD屏的像素点,让LCD屏上相应的像素点点亮;
         颜色值:通过ILI9341驱动芯片内置显存GRAM;               
         ILI9341采用RGB565格式存储颜色数据,
         ILI9341的D17~D13和D11~D1对应MCU的D15~D0。
11 1111 1111 1111 1111





         MCU的16位数据,最低5位代表蓝色,中间6位为绿色,最高5位为红色。   
像素点与颜色值:
                   1111 1000 0000 0000   0xF800---红色
                   0000 0000 0001 1111      0x001F---蓝色
                   0000 0111 1110 0000  0x07E0---绿色
                   1111 1111 1111 1111   0xFFFF---白色
                                                             0x0000---黑色
3、TFTLCD屏的工作原理






  1.LCD屏的RAM与LCD屏上的像素点对应靠LCD屏的控制器
       STM32开发板自带的LCD屏内控制器是ILI9341。
  2.LCD屏接口
      MCU接口  -- 8080接口




  8080接口:
    LCD屏上的管脚:
    RS: -- 数据/命令选择端(1 -- 数据  0 -- 指令)
    CS: -- 片选端         (代表该芯片是否被选中)
    WR: -- 写使能         (是否给LCD屏传输数据)
    RD: -- 读使能         (LCD屏是否给总线传输数据)
   DB0~DB15:-- 数据的传输(数据总线)
2Q
   STM32可以通过FSMC来操作外部8080接口
   FSMC的作用:扩展外部存储区域
   FSMC挂接LCD屏:      
   FSMC_NE4  -- 片选 FSMC_NE4 -- CS
   FSMC_A10   -- RS
   FSMC_D[15:0]   -- 数据总线
   FSMC_NOE       -- 输出使能(读使能) -- RD
   FSMC_NWE      -- 写能    -- WR

4、ILI9341的操作过程:

       ILI9341的操作 -- STM32通过8080接口向LCD屏发送指令和数据。
      对ILI9341的读写操作时序图:DS--32页
      写:
         




   FSMC操作LCD屏:
     例如:给LCD屏上某一个像素点点亮某一种颜色值 -- 110(ILI9341的数据手册)           
   1、发送设置列地址指令 -- 0x2A
   2、发送列地址         -- 参数
   3、发送设置行地址指令 -- 0x2B
   4、发送行地址         -- 参数
   5、发送显示的颜色值指令- 0x2C
   6、发送颜色值        -- (16位数据)  

1.写列地址--2A
2.指令  2.写行地址--2B指令
3.给该地址赋值--2C指令(颜色值)
打点函数
    240*320个像素点--像素点--LCD_DrawPoint();
    1.点亮的是哪个点?--设置点的X/Y轴坐标;
    2.写颜色值;--每个像素点对应一个16位的颜色值(2个字节)

总结:STM32操作LCD屏:通过FSMC给不同的地址发送数据,使A10变高变低,       进而操作LCD屏的发送指令和数据。

5、STM32 LCD屏初始化和显示一个字符和汉字的程序分析

   STM32对LCD屏的初始化:
   1、初始化GPIO口
   2、初始化FSMC控制器
   3、初始化LCD屏的控制芯片ILI9341
   4、显示数据(点亮一个像素点)

作业:

1显示一个字符:L、O、V、E
2显示一个汉字:你的姓名
3显示一个“大”字--56 *56的字
4 让“大”字循环左右移动;
5显示一张图片:
6 大字在图片上移动,背景颜色为图片
7 在LCD屏上画一个圆环,显示奥运五环


  • 滴答时钟为什么要初始化?
  • extern声明数组是什么意思?
  • 滴答时钟配置彻底搞懂.

显示图片:
显示:像素点是LCD屏显示的最小单位
像素点:240*320个;
颜色值:16位真彩显示--16位数据组成颜色值---RGB565格式;
举报

更多回帖

发帖
×
20
完善资料,
赚取积分