之前使用了 fbtft 成功驱动了lcd st7735r,现在尝试下驱动 ili9341,

配置

跟之前用 fbtft 驱动 st7735r 一样,先用 make menuconfig 配置内核,添加 fbtft 。然后修改设备树,同样是在设备树spi5下添加:

ili9341@0{
compatible = "adafruit,yx240qv29", "ilitek,ili9341";
reg = <0>;
spi-max-frequency = <32000000>;
buswidth=<8>;
dc-gpios = <&gpiof 3 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpiod 13 GPIO_ACTIVE_HIGH>;
rotation = <270>;
bgr;
};

编译,更新板子上的内核跟设备树,启动,屏由白变黑,说明驱动应该是没问题的,看下启动信息中跟fb有关的部分:

root@stm32mp1:~# dmesg | grep "fb"
[ 2.091619] fbtft_of_value: buswidth = 8
[ 2.416500] graphics fb0: fb_ili9341 frame buffer, 240x320, 150 KiB video memory, 16 KiB buffer memory, fps=20, spi0.0 at 32 MHz

可以看到LCD的相关信息。

简单测试

配置一下,开机的时候显示Linux Logo:

显示随机数:

系统自带工具

在测试过程中,无意中发现系统中自带了 framebuffer 测试工具:

  • 使用 fb-test 测试

结果如下:

这个工具可以用来测试LCD驱动正不正常

  • 使用fb-rect

    运行该命令后,LCD上一直都在显示不同尺寸不同颜色的方块:

  • 使用fb-perf

    运行结果如下:

littlevgl

littlevgl是一个开源的嵌入式GUI库,详细信息查看官网:https://littlevgl.com/

littlevgl 官方已经有支持Linux,工程地址为:https://github.com/littlevgl/lv_linux_frame_buffer

首先下载下来:

git clone --recursive https://github.com/littlevgl/lv_linux_frame_buffer.git

下载下来后,先修改lv_conf.h,以下3个参数需要跟所用LCD一样:

在文件lv_drv_conf.h中,确认程序中所用设备是否为所用设备对应的fb设备,如下图,程序中默认是用 fb0,如果不是 fb0,需要做相应修改:

然后直接输入 make,编译,编译的部分信息如下:

编译完成后把编译出来的可执行文件 demo 拷贝到 STM32MP157c 的板子上,并运行结果如下:

玩转STM32MP157- 使用fbtft驱动 lcd ili9341的更多相关文章

  1. 玩转STM32MP157- 使用fbtft驱动 lcd st7735r

    什么是fbtft fbtft 在 github 中的介绍是" Linux Framebuffer drivers for small TFT LCD display modules,翻译过来 ...

  2. 用普通IO驱动LCD的控制方法-松瀚汇编源程序

    /*************************************** 本例程为IO直接驱动LCD的方法 以下是松瀚MCU汇编源程序 **************************** ...

  3. 痞子衡嵌入式:记录i.MXRT1060驱动LCD屏显示横向渐变色有亮点问题解决全过程(提问篇)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1060上LCD横向渐变色显示出亮点问题的分析解决经验. 痞子衡前段时间在支持一个i.MXRT1060客户项目时遇到了LCD ...

  4. STM32驱动LCD原理

    TFTLCD即薄膜晶体管液晶显示器.它与无源TN-LCD.STN-LCD的简单矩阵不同,它在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性 ...

  5. STM32驱动LCD实战

    前段时间写了<STM32驱动LCD原理>和<STM32的FSMC外设简介>两篇文章,本文将对STM32驱动LCD进行实战应用.LCD是深圳市拓普微科技开发有限公司的LMT028 ...

  6. 基于V7的emWin多屏显示方案模板,同时驱动LCD和OLED例程

    说明: 1.多屏驱动跟多图层驱动是类似的,可以使用函数GUI_SelectLayer做切换选择. 2.为了避免OLED闪烁问题,创建一个128*64bit的显存空间,然后使用emWin的GUI_TIM ...

  7. FPGA驱动LCD显示红绿蓝彩条

    实验目的:先简单熟悉LCD灯的驱动和时序图的代码实现.设计功能是让LCD显示红绿蓝三种颜色,即三个彩带.本次实验比较容易实现,主要是对LCD驱动时序图的理解和时序参数的配置. 实验条件:1.LCD原理 ...

  8. 创龙DSP6748开发板驱动LCD屏

    1. DSP6748内部有2个LCD控制器,Raster Controller 光栅控制器和the LCD Interface Display Driver (LIDD) controller 控制器 ...

  9. MSP430常见问题之LCD 显示驱动类

    Q1:晶体一般都是接32768,然后使用液晶很正常.我打算将晶体接6M的替换32768,那么液晶还能正常显示吗A1:看你所用的LCM 模块时序极限是多少HZ,然后看6M情况下,MSP430去驱动LCM ...

随机推荐

  1. mybatis新手快速搭建成功详细操作

    1.数据库建表 在数据库中新建一个名为mybatis的数据库,在mybatis数据库中新建一张 t_user 表,表中有3个字段,id,name,password,代码如下: 新建一个mybatis数 ...

  2. UVA OJ 623 500!

    500!  In these days you can more and more often happen to see programs which perform some useful cal ...

  3. 19 常用API

    API 什么是API? API (Application Programming Interface) :应用程序编程接口 简单来说:就是Java帮我们已经写好的一些方法,我们直接拿过来用就可以了 1 ...

  4. .Net Core·寄托于IIS的REST服务405的问题

    阅文时长 | 0.48分钟 字数统计 | 828.8字符 主要内容 | 1.引言&背景 2.声明与参考资料 『.Net Core·寄托于IIS的REST服务405的问题』 编写人 | SCsc ...

  5. Telnet 对比 SSH

    # 命令行 ssh 比teltet 加密好 图形 vnc只能传递图形 不能传递声音,linux为服务端,vnc客户端为windows 和linux vnc是windows连linux rdp是linu ...

  6. 11.19 rpm:RPM包管理器

    rpm命令的全称是Red Hat Package Manager(Red Hat包管理器),几乎所有的Linux发行版本都使用了这种形式的命令管理.安装.更新和卸载软件. 概括地说,rpm命令包含了五 ...

  7. 西门子S7系列以太网通讯处理器安装调式操作

    北京华科远创科技有限研发的远创智控ETH-YC模块,PLC转以太网型号有MPI-ETH-YC01和MPI-ETH-YC01,适用于西门子S7-200/S7-300/S7-400.SMART S7-20 ...

  8. 解决element-ui el-input输入框内容无法修改的问题

    wqy的笔记:http://www.upwqy.com/details/271.html el-input  中  使用 :value 时  input输入的内容无法修改 <el-input : ...

  9. 从栈上理解 Go语言函数调用

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/518 本文使用的go的源码 1.15.7 前言 函数调用类型 这篇文 ...

  10. Step By Step(Lua字符串库)

    Step By Step(Lua字符串库) 1. 基础字符串函数:    字符串库中有一些函数非常简单,如:    1). string.len(s) 返回字符串s的长度:    2). string ...