【CubeIDE】MiniUI驱动ili9341液晶屏教程

article/2025/4/19 21:20:51

0x00  前言

    MiniUI是笔者为一位非常要好的朋友兼师父基于C++开发的屏幕驱动框架,MiniUI分为两部分(如图),抽象层(Abstract layer)继承了底层驱动操作LCD的基础API,例如画点(DrawPixel)填充色彩(FillColor),抽象层负责对用户提供操作LCD的抽象级别API,用户不必关注对LCD的操作细节,MiniUI的名字源于她的设计理念,轻便可移植简单,MiniUI已完全开源。

  开源地址:https://gitee.com/NackBT/mini-ui/tree/master/

0x01 CubeIDE图形化配置

    闲言少叙,虽然笔者使用CubeIDE,但是CubeMX+Keil也是可以的,只要是HAL库就可以,但无论是CubeIDE还是Keil,都必须配置为C++工程。

笔者使用的是stm32f407vet6。

1.新建工程

新建完工程,别忘了配置调试接口RCC和时钟树

2.配置三个输出GPIO

  IO名不用和图片里的一样,但是数量必须是三个。

DC(RS)最好设置为High Speed

3.配置SPI

4.使用更大的堆栈

ps:如果程序无法运行或者驱动多块屏幕,可以尝试使用比图片中更大的堆栈

图形化配置到此为止,设置完堆栈就可生成代码了

5.stm32与ili9341接线线序

 stm32                   ili9341

RST        ---->        RST  // 复位线(低电平复位)

DCRS     ---->        DC    // 命令数据选择  有的模块叫RS

BLED      ---->        LED  // 背光LED

NSS        ---->        CS    // SPI片选线(低电平选中)

MOSI      ---->        SDI   // SPI主发从收数据线

SCK        ---->        SCK // SPI时钟线(频率不建议大于20m)

6.项目中导入MiniUI

 

直接把ili9341的底层驱动和MiniUI框架拖进Inc文件夹

然后将main.c重命名为main.cpp,如果要重新生成代码,必须将main.cpp改回main.c再生成代码,生成完代码再改回main.cpp

然后将main.c重命名为main.cpp,如果要重新生成代码,必须将main.cpp改回main.c再生成代码,生成完代码再改回main.cpp

然后将main.c重命名为main.cpp,如果要重新生成代码,必须将main.cpp改回main.c再生成代码,生成完代码再改回main.cpp

重要的事情说三遍

至此基础配置以及完成

0x02 编写初始化代码

1.在main.cpp中包含MiniUI

2.创建一个MiniUI对象

    用了几个lcd屏就创建几个,使用时分别调用对象的成员函数即可(C艹真香)

3.编写初始化程序

0x03 MiniUI 函数库使用方法

0.食用前必备知识

    MiniUI 的坐标定义

颜色:  MiniUI的颜色有两种表示方法:

        a. MiniUI的底层驱动头文件中已经定义好了常用颜色,在输入颜色参数是直接用定义好的宏

#define   RGB565_BLACK     0x0000
#define   RGB565_NAVY      0x000F
#define   RGB565_DGREEN    0x03E0
#define   RGB565_DCYAN     0x03EF
#define   RGB565_MAROON    0x7800
#define   RGB565_PURPLE    0x780F
#define   RGB565_OLIVE     0x7BE0
#define   RGB565_LGRAY     0xC618
#define   RGB565_DGRAY     0x7BEF
#define   RGB565_BLUE      0x001F
#define   RGB565_GREEN     0x07E0
#define   RGB565_CYAN      0x07FF
#define   RGB565_RED       0xF800
#define   RGB565_MAGENTA   0xF81F
#define   RGB565_YELLOW    0xFFE0
#define   RGB565_WHITE     0xFFFF

        b.直接输入RGB565格式的颜色值(不推荐)

1.画点函数

该函数共有三个参数 

  • x:横坐标
  • y:纵坐标
  • color:颜色

使用例程:

使用效果:

2.画线函数

该函数共有5个参数:

  • 线段其中一点的x坐标
  • 线段其中一点的y坐标
  • 线段另外一点的x坐标
  • 线段另外一点的y左边
  • 线段的颜色

使用例程:

使用效果:

3.画矩形函数

该函数共有六个参数:

  • 第一二,三四个参数为矩形对角线上两点坐标
  • 第5个参数是否填充矩形(矩形是否为实心的),为ture时填充,false时不填充
  • 第六个参数为颜色

使用例程:

使用效果:

4.画圆函数

该函数共5个参数:

  • 第一二个参数为圆心的横纵坐标
  • 第三个参数为圆的半径
  • 第四个参数为是否填充,为ture时填充,false时不填充
  • 第五各参数为圆的颜色

ps:该函数由于圆的解算有问题,导致不填充时圆的两侧会缺像素点少像素点

使用例程:

使用结果:

5.字符打印函数

    16*16字符打印函数:

    32*32字符打印函数:

ps:虽然是16*16或者32*32,但实际宽度为16*8和32*16

使用例程:

使用效果:


http://chatgpt.dhexx.cn/article/IvOA35h5.shtml

相关文章

Jquery miniUI 开发教程(2) 搭建Jquery miniUI 开发环境

Jquery miniUI 下载地址:http://www.miniui.com/download Note:请根据不同的服务端后台,选择下载不同后台版本的MiniUI。 下载后,解压缩后,如图所示: 各目录文件解释如下: dbsql:示…

mysql 表格控件,jQuery MiniUI 开发教程 表格控件 表格:分页查询(一)

数据表格 参考示例:数据表格 分页表格 一:创建表格 url"../data/DataService.aspx?methodSearchEmployees" idField"id" allowResize"true" > 员工帐号 姓名 性别 薪资 年龄 创建日期 二:数据加载 条件…

MiniUI快速入门教程(二)编写第一个MiniUI程序:Hello, world!

我们开始编写第一个MiniUI程序&#xff0c;代码如下&#xff1a; <!DOCTYPE html /> <html> <head><title> Hello MiniUI!</title><!--jQuery js--><script src"../jquery.js" type"text/javascript"></scri…

MiniUI快速入门教程(五)主框架布局

下面实现一个最典型主框架布局。 效果图如下&#xff1a; 一&#xff1a;创建界面布局 <!--Layout--> <div id"layout1" class"mini-layout" style"width:100%;height:100%;"><div class"header" region"north&qu…

MiniUI快速入门教程(四)表单开发

表单开发包括&#xff1a;布局、验证、加载、提交、清除、重置等。 效果图如下&#xff1a; 表单布局 使用HTML Table标签实现任意丰富的表单布局&#xff1a; <table class"form-table" border"0" cellpadding"1" cellspacing"2"&…

MiniUI 实战演练视频教程-专题视频课程

MiniUI 实战演练视频教程—553人已学习 课程介绍 该视频培训课程主要分享MiniUI文本控件、按钮控件、组合框控件、列表控件、单选、复选框控件、密码、文本块控件、日期选择控件、上传控件、数据网格控件、弹窗、菜单、选项卡、布局等MiniUI的所有知识点。 课程收益 …

MiniUI快速入门教程(一)下载安装

产品下载地址&#xff1a;http://www.miniui.com/download。 Note&#xff1a;请根据不同的服务端后台&#xff0c;选择下载不同后台版本的MiniUI。 下载后&#xff0c;解压缩。 会有如下文件结构&#xff1a; 各目录文件解释如下&#xff1a; dbsql&#xff1a;示例数据库sql文…

视频教程-MiniUI 实战演练视频教程-其他

MiniUI 实战演练视频教程 近20年的开发经历&#xff0c;从早的basic&#xff0c;c &#xff0c;到今天的.net,Java ,Pathon &#xff0c;熟悉oracle&#xff0c;mysql&#xff0c;sqlserver 多种数据库开发模式。 李向军 59.00 立即订阅 扫码下载「CSDN程序员学院APP」&#xf…

MiniUI 快速上手

1. 下载安装 下载地址 安装 在使用过程中也只需要在页面中引用jquery.js、boot.js&#xff0c;如下所示 <head><title>Hello MiniUI!</title><script src"scripts/jquery-1.6.2.min.js"type"text/javascript"></script>…

miniui设置属性值_jQuery教程之MiniUi绑定mini-combobox下拉框

本篇文章探讨了jQuery教程之MiniUi绑定mini-combobox下拉框,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。 < 一:最先开始使用json字符串绑定combobox [{"id":1,"value":"是","text":"是"},{…

miniui datagrid java_[Java教程]MiniUI DataGrid获取当前行某列值

[Java教程]MiniUI DataGrid获取当前行某列值 0 2015-10-28 20:00:17 前言: 本文将给大家介绍一下, miniUI官网没有涉及到的内容:如何获取当前行某一列的值?这里配合着console.log()一起来使用(最近发现用console.log()来调试js、Jquery相当好用),教你如何自己寻找未知的属…

初学miniui之miniui的使用

参加实习以来&#xff0c;本以为会可以专心的敲后台代码&#xff0c;结果一上手先让我自学miniui&#xff0c;关于miniui我在网上没有搜到什么有用的教程&#xff0c;只有miniui官方的示例、API等。但是对于初学者该如何使用都没有说明&#xff0c;我也是整整摸索了半天才学会了…

jQuery MIniUI 的使用教程入门

目录 一、为什么要使用MIniUI二、快速入门三、项目常用控件(点击查看详情)四、使用方法五、UI和数据分离 一、为什么要使用MIniUI 缩短开发时间&#xff0c;减少代码量&#xff0c;提升用户体验 &#xff1b;快速开发web界面 &#xff1b;丰富控件&#xff1a;包含表格、树、数…

MiniUI/jQuery MIniUI使用教程(一)

目录 下载安装基础介绍 下载安装 去官网地址&#xff1a;http://www.miniui.com/download/ 下载试用版本代码 核心文件 这里我们只需要关注这两个文件夹&#xff0c;其中res里面是静态资源、css文件、三方插件等 scripts(核心文件夹)里面包含miniui核心文件和boot.js启动js&…

如何阅读学术论文

如何阅读学术论文 1 阅读学术论文容易犯的三个错误2 正确的阅读路线(1) 通过论文结构快速理解所阅读的论文a)摘要和引言b) 技术部分 (2)少于30%时间阅读&#xff0c;多于70%时间思考a) 批判性思考b) 创造性思考 (3)做好已阅读过的论文目录与分类记录a)文献目录记录的基本内容b)…

近期论文阅读

[AAAI’21]ACSNet:Action-Context Separation Network for Weakly Supervised Temporal Action Localization 从图中可以看出&#xff0c;左侧绿色框表示是动作类、红色框表示是动作上下文、蓝色框表示为背景类。通过右图的特征空间可见&#xff0c;蓝色的背景类特征与GT相差较…

学会阅读论文

参考知乎 《如何在计算机应用领域寻找研究想法》 提示1&#xff1a;学会阅读论文&#xff0c;培养品味 《how to read a paper》 THE THREE-PASS APPROACH 关键的想法是&#xff0c;你应该把论文读三遍&#xff0c;而不是从头读到尾。每一关都完成了特定的目标并建立在前一…

【论文阅读】

文章目录 Enhancing Recommender Systems With a Stimulus-Evoked Curiosity Mechanism1、引言2、理论基础&#xff08;原文中使用preliminary&#xff09;3、问题定义4、本文提出的刺激诱发的好奇心机制&#xff08;STIMULUS-EVOKED CURIOSITY MECHANISM &#xff0c;SECM&…

怎样阅读论文

2014-07-27彭明辉南京叠锶 生命是一种长期而持续的累积过程&#xff0c;绝不会因为单一的事件而毁了一个人的一生&#xff0c;也不会因为单一的事件而救了一个人的一生。属于我们该得的&#xff0c;迟早会得到&#xff1b;属于我们不该得的&#xff0c;即使侥幸巧取也不可能长久…

学术论文阅读方法

文章目录 学术论文阅读过程大量阅读学术论文方法&#xff1a;目的&#xff1a; 复现优秀论文提出创新点整理成文 看不懂怎么办幻灯博客视频课程代码 More研究生生活工作业务要求英语老师建议 近期基本完成机器学习和深度学习的学习&#xff0c;开始六分看论文三分学基础一分撸代…