SPI

同步 全双工 串行通信协议

硬件电路

主机 -- 从机

SCK -> SCK

MOSI -> MOSI

MISO -> MISO

NSS -> NSS

SPI时序

M --MOSI--> S ; S -MISO-> M;

  • 单向信号依旧遵循该时序,当M->S时,MISO上的数据叫做虚拟数据
  • M需要配置CPOL和CPHA的模式配置:模式决定在SCK的特定变化下数据进行传输。
    • CPOL:

      1.CPOL=0,SCK在IDEA时为低电平;

      2.CPOL=1,SCK在IDEA时为高电平;
    • CPHL:

      1.CPHL=0,第一跳变采样;

      2.CPHL=1,第二跳变采样;

LCD控制

LCD控制理论

配合代码食用更佳

[LCD代码]()

LCD驱动函数

基本图形绘制函数

  1. 区域填充

    void LCD_Fill(u16 xsta, u16 ysta, u16 xend, u16 yend, u16 color);

    功能:在指定矩形区域内填充颜色

    参数: xsta, ysta:起始坐标(左上角);xend, yend:结束坐标(右下角);color:填充颜色(RGB565格式)
  2. 画点

    void LCD_DrawPoint(u16 x, u16 y, u16 color);

    功能:在指定位置画一个点

    参数:x, y:点的坐标;color:点的颜色
  3. 画线

    void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2, u16 color);

    功能:在两点之间画一条直线

    参数:x1, y1:起点坐标;x2, y2:终点坐标;color:线条颜色
  4. 画矩形

    void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2, u16 color);

    功能:画一个矩形(空心)

    参数:

    x1, y1:左上角坐标;x2, y2:右下角坐标;color:边框颜色
  5. 画圆

    void Draw_Circle(u16 x0, u16 y0, u8 r, u16 color);

    功能:画一个圆(空心)

    参数:

    x0, y0:圆心坐标;r:半径;color:圆的颜色

文本显示函数

  1. 显示单个字符

    void LCD_ShowChar(u16 x, u16 y, u8 num, u16 fc, u16 bc, u8 sizey, u8 mode);

    功能:显示一个ASCII字符

    参数:

    x, y:起始坐标(左上角);num:要显示的字符(ASCII值);fc:字体颜色;bc:背景颜色;sizey:字号(支持12,16,24,32);mode:显示模式(0:非叠加模式,1:叠加模式)
  2. 显示字符串

    void LCD_ShowString(u16 x, u16 y, const u8 p, u16 fc, u16 bc, u8 sizey, u8 mode);

    功能:显示一个ASCII字符串

    参数:

    x, y:起始坐标;
    p:字符串指针;fc:字体颜色;bc:背景颜色;sizey:字号;mode:显示模式;
  3. 显示整数

    void LCD_ShowIntNum(u16 x, u16 y, u16 num, u8 len, u16 fc, u16 bc, u8 sizey);

    功能:显示一个整数

    参数:

    x, y:起始坐标;num:要显示的整数;len:显示的总位数(不足补0,超出则截断);fc:字体颜色;bc:背景颜色;sizey:字号
  4. 显示浮点数(两位小数)

    void LCD_ShowFloatNum1(u16 x, u16 y, float num, u8 len, u16 fc, u16 bc, u8 sizey);

    功能:显示一个浮点数(保留两位小数)

    参数:

    x, y:起始坐标;

    num:要显示的浮点数;len:显示的总位数(包括整数部分和小数点及两位小数);fc:字体颜色;bc:背景颜色;sizey:字号;

汉字显示函数

  1. 显示汉字串

    void LCD_ShowChinese(u16 x, u16 y, u8 *s, u16 fc, u16 bc, u8 sizey, u8 mode);

    功能:显示一串汉字

    参数:

    x, y:起始坐标(左上角);

    *s:汉字字符串(每个汉字占2字节);

    fc:字体颜色;

    bc:背景颜色;

    sizey:字号(支持12,16,24,32);

    mode:显示模式(0:非叠加模式,1:叠加模式);
  2. 显示单个汉字(不同尺寸)

    void LCD_ShowChinese12x12(u16 x, u16 y, u8 *s, u16 fc, u16 bc, u8 sizey, u8 mode);

    void LCD_ShowChinese16x16(u16 x, u16 y, u8 *s, u16 fc, u16 bc, u8 sizey, u8 mode);

    void LCD_ShowChinese24x24(u16 x, u16 y, u8 *s, u16 fc, u16 bc, u8 sizey, u8 mode);

    void LCD_ShowChinese32x32(u16 x, u16 y, u8 *s, u16 fc, u16 bc, u8 sizey, u8 mode);

    注意:这些函数一般不需要直接调用,由LCD_ShowChinese自动调用

图片显示函数

void LCD_ShowPicture(u16 x, u16 y, u16 length, u16 width, const u8 pic[]);

功能:显示一张图片

参数:

x, y:起始坐标(左上角)

length:图片长度(宽度)

width:图片高度(高度)

pic[]:图片数据数组(RGB565格式,每个像素2字节)

LCD显示信号波形的更多相关文章

  1. TFT LCD显示原理详解

    <什么是液晶> 我们一般认为物体有三态:固态.液态.气态,其实这只是针对水而言,有一些有机化和物 还有介于固态和液态中间的状态 就是液晶态,如下图(一):                 ...

  2. mini2440裸试验—计算器(LCD显示,触摸屏突破)

    关于Pait_Bmp(x0, y0, x, y, BMPaddr);函数 像素图在屏幕左上角为(0,0),Pait_Bmp中的x0.y0分别像素点初始位置,x,y为BMP图片的X,Y的大小.BMPad ...

  3. LCD显示异常分析——撕裂(tear effect)【转】

    转自:LCD显示异常分析--撕裂(tear effect) 概述 在上一篇<LCD显示异常分析--开机闪现花屏>中,我们一起分析了开机花屏的问题,在这一篇中,我将对LCD撕裂(tear e ...

  4. LCD显示异常分析——开机闪现花屏【转】

    转自LCD显示异常分析--开机闪现花屏 最近在工作中,有同事遇到LCD开机瞬间会闪现雪花屏的问题,而这类问题都有个共同点,那就是都发生在带GRAM的屏上,同样的问题,在休眠唤醒时也会出现. 其实这类问 ...

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

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

  6. LCD显示方向

    一.ILI9341内存到显示地址的映射 本文只讨论“正常显示”,不讨论“垂直滚动显示”模式. 可以看到物理内存被两个指针访问,行指针和列指针,行指针范围从000h到013Fh,列指针范围为0000h到 ...

  7. Raspberry PI Model B+ (LCD显示CPU温度)

    Title:Raspberry PI Model B+ (LCD显示CPU温度)  --2015-01-29 17:44 买了块连接Raspberry PI Model B+的LCD显示器,上面没写C ...

  8. LCD显示GPS时钟[嵌入式系统]

    夏任务102:做一个GPS钟 实验要求 用RPi的串口连接一个GPS模块,从GPS得到实时时间,在7段数码管或LCD上显示 实验工具: Raspberry Pi Model B主机, 8G c10 S ...

  9. 2.数码相框-编码(ASCII/GB2312/Unicode)介绍,并使LCD显示汉字字符(2)

    在上章-学习了数码相框的框架分析(1)了 本章主要内容如下: 1)熟悉ASCII/GB2312/Unicode编码 2)写应用程序,使LCD显示汉字和字符 大家都知道,数据传输的是二进制,而字符和汉字 ...

  10. 内核启动后,lcd显示logo失败

    针对-s5pv210,但对其他平台也使用 lcd显示logo失败,若显示成功默认的logo是一只企鹅,但是串口打印“Start display and show logo”,但是LCD屏没有显示    ...

随机推荐

  1. SQL 条件求和

    SUMIF 就是 Excel 中的 sumif () 函数的功能. 工作中用的频率极其高, 像我就几乎天天在用的呢. 也是做个简单的笔记而已. 为啥我总是喜欢对比 Excel 呢, 因为我也渐渐发现, ...

  2. MCP 实践系列:股票分析

    今天,我们介绍了一个通过 Financial Datasets 获取股票市场数据的接口.这个接口不仅支持其他 AI 助手通过 MCP 接口 直接检索关键的财务数据(如损益表.资产负债表.现金流量表), ...

  3. ASP.NET Core之由配置系统与创建app所想到的

    先看文件配置的代码: ConfigurationBuilder configBuilder=new ConfigurationBuiler();//典型的创建者模式 configBuilder.Add ...

  4. File与IO流之字节流

    FileOutputStream 创建字节输出流对象FileOutputStream fl =new FileOutputStream() 传入的参数可以是字符串路径或者File对象(实际上如果传入字 ...

  5. Java中判断某一字符串是否包含数字、字母和中文

         在Java中判断某一字符串是否为纯英文.纯数字.英文和数字的组合等时,通常使用正则str.matches匹配,告诉这个字符串是否与给定的正则表达式匹配.  各种字符的unicode编码的范围 ...

  6. Spring注解之自定义注解入门

    目录 前言 注解是什么 自定义注解 元注解 @Target @Retention @Documented @Inherited 结束语 Reference 前言   在业务开发过程中,Spring 框 ...

  7. 「Note」图论方向 - 图论基础

    1. 差分约束 1.1. 简介 差分约束算法用于解决如下问题:给出若干形如 \(x_a-x_b\le c\) (均为整数,可以为负数)的不等式,求一组解 \(\{x_i\}\),若不存在解则判断无解. ...

  8. 企业级LDAP-RADIUS深度集成高可用方案

    一.环境规划总表 1. 节点规划与资源配置 节点类型 主机名 IP地址 VIP 角色 CPU/内存 存储 操作系统 LDAP节点 ldap01 10.0.0.11 10.0.0.10 OpenLDAP ...

  9. SolidWorks下载安装教程(附安装包)SolidWorks 2025 软件全方位指南

    一.SolidWorks 2025 软件深度介绍 SolidWorks 2025 是达索系统精心研发推出的一款功能强大且专业的三维机械设计软件,它将 3D CAD 设计.分析及产品数据管理功能高度集成 ...

  10. 「Uniapp」一些常用方法的封装

    弹窗 - showModal /** * 封装 uni.showModal * @param {Object|String} options 配置对象或提示内容 * @param {String} [ ...