STMCU小助手
发布时间:2022-7-6 14:46
|
一、LCD基本介绍 液晶显示屏原理:液晶显示原理 LCD原理图: 4 {4 @1 d. A# Q+ J* k, B/ B2 t
' ^' x6 E4 C4 b' P' f4 q/ _' j 官方会给出LCD的配置的,了解一下就行了 % D! _; B7 \% `7 ~: G. m/ H 注意:屏幕的原点是竖着放着时的左上方 ' P. v6 E0 n5 p5 E: T
在每次LCD初始化后一定要先清屏在进行其他设置,并且LCD的初始化一定要放在系统初始化之后。 一般模板:
二、函数介绍 1.颜色设置函数 void LCD_Clear(u16 Color); // 设置清屏颜色+ k6 q+ o r2 I, o2 T2 S void LCD_SetTextColor(vu16 Color); // 设置字体颜色/ E a5 v+ @0 T void LCD_SetBackColor(vu16 Color); // 设置背景颜色 LCD_SetTextColor()是设置字体颜色,但是作用效果仅对后面的显示有效! }! o. v& L; ?6 z$ C4 @6 p' o : t) n9 y% M5 q; H$ M3 g LCD_SetBackColor()是设置背景颜色,作用效果也仅对后面的显示有效,并且设置的区域是字体的显示区域,其他区域会也清屏时的颜色显示
# d! G) X5 I, Y+ P0 p 显示结果: % v& V" h2 |7 d! ?$ E; P3 ]8 h
2.字符显示函数 void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii); //任何位置显示字符 void LCD_DisplayStringLine(u8 Line, u8 *ptr); //行显示字符5 {% H; p# g5 s! v" [( ]+ w+ B 2 G3 p) d/ g( [) j 显示屏为320*240,LCD_DisplayStringLine这个函数根据参数可知,是按行来显示的,显示屏共有Lin0~Lin9,每行可以显示20个字符 8 m# ]. o. m$ e P/ u 注意:Line一般传入参数Line0-9, 若传入数字则是以像素为单位 若用于显示变量,这种方法需要使用到sprintf()函数(添加头文件stdio.h") , E. O6 }# Y; U, N, a/ l- j& {# N 我们要定义一个字符数组,用来存放需要显示的字符串(LCD一行只能显示20个字符,所以数组大小定为21),sprintf()函数的作用就是将指定的字符串存入数组中 头文件:stdio.h$ p' ~ W: J' n 函数功能:,格式化字符串,将格式化的数据写入字符串中。 函数原型:int sprintf(char *buffer, const char *format, [argument]…)( k+ A& C- Q I* _5 U/ F5 l 参数: (1)buffer:是char类型的指针,指向写入的字符串指针;/ m- s9 m8 g: p (2)format:格式化字符串,即在程序中想要的格式;. s6 `$ L8 `5 I9 z1 Z (3)argument:可选参数,可以为任意类型的数据;2 V9 Y; o& \1 Q0 \8 | 函数返回值:buffer指向的字符串的长度;0 D1 ^' s% s' p& } G0 j1 u7 a, n" y
对于LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii); 前两个参数是行数和列数,由于官方没有给出每一列的宏定义,所以需要我们自己推一下。这里列选择需要了解一下lcd的分辨率 在官方给的参考资料里面介绍了分辨率是240RGBx320,我们知道lcd一共分为10行,20列,所以一个字符的高实际上是24*16,可以看到lcd.h宏定义里面每一行之间的差值就是24,那么每一列之间的差值就是16,实际上表示一列的时候是反着来的,320表示第一列,320-16表示第二列,那么320-(16 * i)表示第i列 4 S: v! S2 K* H' E
8 m1 p! ] V# M/ q: @* B, A / R* b6 u; r4 y. p1 r6 W . d$ J, M. J$ x' Z! @ 9 y/ O L: v9 i9 s6 b8 l |
经验分享 | 基于STM32G4芯片TIM+SPI+DMA应用示例
STM32G47x 双 Bank 模式下在线升级
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【经验分享】STM32G4之基本定时器
NUCLEO-G474RE 扩展 LSM6DSO 传感器数据融合实操演示全解析
经验分享 | STM32G474 高精度定时器同步功能全解析 从内部互联到多芯片协同的实现方案
经验分享 | STM32G4双BANK启动应用演示
STM32G4 LPTIM+DMAMUX 实现并行输出应用示例
实战经验 | LAT1578 SAU对NSC分区的影响
经验分享 | STM32G474 HRTIM Triggered-half模式实现两相交错电源180°相位同步方案
微信公众号
手机版