LCD -

news2024/10/10 22:06:37

LCD

目录

LCD

回顾

应用

- 1、首先将该LCD屏官方写好的三个文件添加进工程中的api文件夹中

- 2、找到LCD的初始化函数

- 3、在LCD屏幕上显示字符串

- 4、在LCD屏幕上显示图片

- 5、在LCD屏幕上显示汉字

例:在LCD屏幕上显示温湿度,时间代码

LCD屏幕 --了解

上述总结来说

FSMC 模拟 8080 时序信号

LCD屏幕代码的实现


-- 学会看时序图

回顾

  • RTC
  1. 使用了官方代码,和咱们之前写的格式不一样,代码看不懂、比较乱。 Rtc 代码编写框架
  2. 使能后备区域访问、
  3. 时钟源/分频系数
  4. 给计数器赋初值
  5. 中断(秒中断/闹钟中断) RTC 相关的(写操作)函数,在执行完之后,都会有等待函数
  • 闹钟中断

应用

-- 这里把LCD屏幕的介绍放在本文后面,因为我们主要学的是软件,理论上说只用学会如果用LCD的代码即可,不需要了解LCD的硬件原理,但为了让大家能看懂代码,所以简单了解即可,不懂也没关系

- 1、首先将该LCD屏官方写好的三个文件添加进工程中的api文件夹中

alt text

-- 添加过后,编译工程,会出现错误和警告,不用担心,是因为延时函数写的不一样导致

-- 找到130行的延时函数, 

alt text

-- 点击CTRL+F,会出现替换的边框,注意一定要在要替换的文件中,点击CTRL+F,除了延时的us出现问题,ms也可能出现问题,所以两个都要替换,替换成自己写的延时函数即可 

alt text

-- 

alt text

- 2、找到LCD的初始化函数

alt text

-- 这里可以设置竖屏和横屏显示,点亮背光,将这个函数放在main函数中 

alt text

-- 效果就是在屏幕的横坐标是10,纵坐标是10的位置,显示一个点

- 3、在LCD屏幕上显示字符串

在main.c中添加如下代码

LCD_ShowString(0,0,80,16,16,"123456qwer");						//宽度字符是汉字的一半,是8,汉字是16,8*10

-- 前两个参数是坐标,后两个参数是显示的宽度和高度,16是字体大小,最后是显示的字符串。
这里因为汉字的宽度是16,字符的宽度是汉字的一半,所以宽度是8,而一共写入10个字符,10*8=80,所以宽度是80.

-- 效果图 

alt text

- 4、在LCD屏幕上显示图片

-- 首先,打开图片取模软件。 

alt text

-- 选择图片,点击打开,配置,然后保存的工程中,他会将这个文件跳出来,关闭即可 

alt text

-- 1.h如图所示 

alt text

将1.h的数组名添加到显示图片的代码最后一个参数。

alt text

  • 注意:这里的列坐标要变一下,因为第一行已经有数据了
LCD_ShowPhoto(0,16,240,135,(uint8_t *)gImage_1);

-- 注意:

要在main.h中加上头文件 

alt text

-- 效果图 

alt text

- 5、在LCD屏幕上显示汉字

-- 首先,打开数字取模软件 

alt text

-- 更改相关参数 

alt text

-- 生成相应的字模 

alt text

  • 编写代码 

    alt text

-- 相关代码

uint8_t xiang[]=
	{0x08,0x80,0x08,0x80,0x08,0x80,0x11,0xFE,0x11,0x02,0x32,0x04,0x34,0x20,0x50,0x20,
	0x91,0x28,0x11,0x24,0x12,0x24,0x12,0x22,0x14,0x22,0x10,0x20,0x10,0xA0,0x10,0x40};/*"你",0*/
	
	//1对应的黑色
	uint16_t cnttt = 0;
	for(uint8_t i=0;i<32;i++) {
		for(uint8_t j=0;j<8;j++) {
			if((xiang[i] & (1<<(7-j))) != 0) {
				LCD_DrawPoint(cnttt%16, cnttt/16);
			}
			cnttt++;	
		}
	}

例:在LCD屏幕上显示温湿度,时间代码

int main()
{
	//pwm_init();
	dht11_init();
	SysTick_Config(72000);
	usart_init();
	
	key_init();
	uint16_t b=100;
	uint8_t keyflag = 0;
	
	adc_init();
	relay_init();
	rtc_init();
	
	
	LCD_Init();//屏幕初始化一定要写到串口初始化后面
	
	LCD_DrawPoint(10,10);
	LCD_ShowString(0,0,80,16,16,"123456qwer");						//宽度字符是汉字的一半,是8,汉字是16,8*10
	//LCD_ShowPhoto(0,16,240,135,(uint8_t *)gImage_1);//必须是
	
	
	
	

//摄氏度字模
uint8_t xiang[]=
{0x60,0x00,0x91,0xF4,0x96,0x0C,0x6C,0x04,0x08,0x04,0x18,0x00,0x18,0x00,0x18,0x00,
0x18,0x00,0x18,0x00,0x18,0x00,0x08,0x00,0x0C,0x04,0x06,0x08,0x01,0xF0,0x00,0x00};/*"℃",0*/
	
	//1对应的黑色
	uint16_t cnttt = 0;
	for(uint8_t i=0;i<32;i++) {
		for(uint8_t j=0;j<8;j++) {
			if((xiang[i] & (1<<(7-j))) != 0) {
				LCD_DrawPoint(cnttt%16+80, cnttt/16+16);
			}
			cnttt++;	
		}
	}

	while(1)
	{
		
		if(dhtime >=2000)
		{
			dhtime =0 ;
			get_dht11_val();
			
			sprintf(D_wen, "tem: %.2f℃",dht.tem);
			sprintf(D_shi, "hum: %.2f%RH", dht.hum);
			//printf("tem:%.2f℃\r\n",dht.tem);
			LCD_ShowString(0,16,120,16,16,D_wen);
			LCD_ShowString(0,32,120,16,16,D_shi);
		}
		
		
		if(rtctime >=999)
		{
			rtctime = 0;
			get_time();
			
			sprintf(D_time, "%04d/%02d/%02d   %02d:%02d:%02d",a.tm_year+1900,a.tm_mon+1,a.tm_mday,a.tm_hour+8,a.tm_min,a.tm_sec);
			
			LCD_ShowString(0,48,180,16,16,D_time);
		}
    }
}

-- 注意:这里的摄氏度字符放在字符串是显示不出来的,需要生成字模,然后显示在LCD屏上

LCD屏幕 --了解

-- 了解

像素:像素是组成图像的最基本单元要素,显示器的像素指它成像最小的点,即前面讲解液晶原理中提到的一个显示单元。 分辨率:一些嵌入式设备的显示器常常以“行像素值 x 列像素值”表示屏幕的分辨率。如分辨 率 800x480 表示该显示器的每一行有 800 个像素点,每一列有 480 个像素点,也可理 解为有 800 列, 480 行

色彩深度:色彩深度指显示器的每个像素点能表示多少种颜色,一般用“位” (bit)来表示。如单色屏的每个像素点能表示亮或灭两种状态(即实际上能显示 2 种颜色),用 1 个数据位就可以表示像素点的所有状态,所以它的色彩深度为 1bit,其它常见的显示屏色深为 16bit RGB565、 24bit RGB888 。0(白) 1(黑) 红色:1111 1000 0000 0000
红色:1111 1111 0000 0000 0000 0000

显示器尺寸:显示器的大小一般以英寸表示,如 5 英寸、 21 英寸、 24 英寸等,这个长度是指屏幕对角线的长度, 通过显示器的对角线长度及长宽比可确定显示器的实际长宽尺寸。

点距:点距指两个相邻像素点之间的距离, 它会影响画质的细腻度及观看距离,相同尺寸的屏幕,若分辨率越高,则点距越小,画质越细腻。如现在有些手机的屏幕分辨率比电脑显示器的还大,这是手机屏幕点距小的
原因; LED 点阵显示屏的点距一般都比较大,所以适合远距离观看。

  • 常见 LCD 屏幕的构成

显示屏由液晶显示面板、触摸面板以及 PCB 底板构成。
图中的触摸面板带有触摸控制芯片,该芯片处理触摸信号并通过引出的信号线与外部器件通讯,触摸面板中间是透明的,它贴在液晶面板上面,一起构成屏幕的主体,触摸面板与液晶面板引出的排线连接到 PCB 底板上,根据实际需要,PCB 底板上可能会带有“液晶控制器芯片”,因为控制液晶面板需要比较多的资源,所以大部分低级微控制器都不能直接控制液晶面板,需要额外配套一个专用液晶控制器来处理显示过程,外部微控制器只要把它希望显示的数据直接交给液晶控制器即可。而不带液晶控制器的 PCB 底板,只有小部分的电源管理电路,液晶面板的信号线与外部微控制器相连,直接控制。
有些芯片不需要额外的液晶控制器,也就是说芯片把专用液晶控制器的功能集成到内部了,可以理解为电脑 的 CPU 集成显卡,它节约了额外的控制器成本。而 STM32F1 系列的芯片由于没有集成液晶控制器到芯片内部, 所以它只能驱动自带控制器的屏幕,可以理解为电脑的外置显卡。 

alt text

  • 液晶显示器的控制信号线

-- 液晶面板的控制信号线液晶面板引出的 FPC 排线,液晶面板通过这些信号线与液晶控制器通讯,使用这种 通讯信号的被称为 RGB 接口。 

alt text

RGB 信号线:RGB 信号线各有 8 根,分别用于表示液晶屏一个像素点的红、绿、蓝颜色分量。使用红绿蓝颜色分量来表示颜色是一种通用的做法。常见的颜色表示会在“RGB”后面附带各个颜色分量值的数据位数,如RGB565 表示红绿蓝的数据线数分别为 5、 6、 5 根,一共为 16 个数据位,可表示 2^16 种颜色;而有些液晶屏的种颜色分量的数据线都有 8 根,所以它支持 RGB888 格式,一共 24 位数据线,可表示的颜色为 2^24 种。
同步时钟信号 CLK:液晶屏与外部使用同步通讯方式,以 CLK 信号作为同步时钟,在同步时钟的驱动下,每个时钟传输一个像素点数据。
水平同步信号 HSYNC:水平同步信号 HSYNC(Horizontal Sync)用于表示液晶屏一行像素数据的传输结束,每传输完成液晶屏的一行像素数据时, HSYNC 会发生电平跳变,如分辨率为 800x480 的显示屏(800 列, 480行),传输一帧的图像 HSYNC 的电平会跳变 480 次。
垂直同步信号 VSYNC:垂直同步信号 VSYNC(Vertical Sync)用于表示液晶屏一帧像素数据的传输结束,每传输完成一帧像素数据时, VSYNC 会发生电平跳变。其中“帧”是图像的单位,一幅图像称为一帧,在液晶屏中,一帧指一个完整屏液晶像素点。人们常常用“帧/秒”来表示液晶屏的刷新特性,即液晶屏每秒可以显示多少帧图像,如液晶屏以 60 帧/秒的速率运行时, VSYNC 每秒钟电平会跳变 60 次。
数据使能信号 DE:数据使能信号 DE(Data Enable)用于表示数据的有效性,当 DE 信号线为高电平时,RGB信号线表示的数据有效

  • 显存

液晶屏中的每个像素点都是数据,在实际应用中需要把每个像素点的数据缓存起来,再传输给液晶屏,一般会使用 SRAM 或 SDRAM 性质的存储器,而这些专门用于存储显示数据的存储器, 则被称为显存。
显存一般至少要能存储液晶屏的一帧显示数据,如分辨率为 800x480 的 液 晶 屏 , 使 用 RGB888 格 式 显 示 , 它的 一 帧 显 示 数 据 大 小 为 :3x800x480=1152000 字 节 ; 若 使 用 RGB565 格 式 显 示 , 一 帧 显 示 数 据 大 小 为 :2x800x480=768000 字节。

-- 这里RGB888为什么是3*800,因为他是24位的,而1个字节是8位,所以3个字节表示一个像素点。同理RGB565是16位的

  • 我们的液晶屏—ILI9341

液晶屏内部包含有一个液晶控制芯片 ILI9341。该芯片最主核心部分是位于中间的 GRAM(Graphics RAM), 它就是显存。
GRAM 中每个存储单元都对应着液晶面板的一个像素点。它右侧的各种模块共同作用把 GRAM 存储单元的数据转化成液晶面板的控制信号,使像素点呈现特定的颜色,而像素点组合起来则成为一幅完整的图 像。
框图的左上角为 ILI9341 的主要控制信号线和配置引脚,根据其不同状态设置可以使芯片工作在不同的模 式,如每个像素点的位数是 6、 16 还是 18 位;可配置使用 SPI 接口、8080 接口还是 RGB 接口与 MCU 进 行通讯。
MCU 通过 SPI、 8080 接口或 RGB 接口与 ILI9341 进行通讯,从而访问它的控制寄存器(CR)、地址 计数器(AC)、及 GRAM。在 GRAM 的左侧还有一个 LED 控制器(LED Controller)。LCD 为非发光性的显示装置, 它需要借助背光源才能达到显示功能, LED 控制器就是用来控制液晶屏中的 LED 背光源。 

alt text

  • 液晶屏的信号线及 8080 时序

ILI9341 控制器根据自身的 IM[3:0]信号线电平决定它与 MCU 的通讯方式,它本身支持 SPI 及 8080 通讯 方式,液晶屏的 ILI9341 控制器在出厂前就已经按固定配置好(内部已连接硬件电路),它被配置为通过 8080 接 口通讯,使用 16 根数据线的 RGB565 格式。内部硬件电路连接完, 剩下的其它信号线被引出到 FPC 排线, 最后该排线由 PCB 底板引出到排针,排针再与实验板上的 STM32 芯片连接。 

alt text

 

alt text

这些信号线即 8080 通讯接口,带 X 的表示低电平有效, STM32 通过该接口与 ILI9341 芯片进行通讯, 实现对液晶屏的控制。通讯的内容主要包括命令和显存数据,显存数据即各个像素点的 RGB565 内容;命令是 指对 ILI9341 的控制指令, MCU 可通过 8080 接口发送命令编码控制 ILI9341 的工作方式,例如复位指令、 设置光标指令、睡眠模式指令等等,具体的指令在数据手册均有详细说明。 

alt text

由图可知,写命令时序由片选信号 CSX 拉低开始,对数据/命令选择信号线 D/CX 也置低电平表示写入的 是命令地址(可理解为命令编码,如软件复位命令: 0x01),以写信号 WRX 为低,读信号 RDX 为高表示数据传 输方向为写入,同时,在数据线 D[17:0](或 D[15:0])输出命令地址,在第二个传输阶段传送的是命令的参数,所 以 D/CX 要置高电平,表示写入的是命令数据,命令数据是某些指令带有的参数,如复位指令编码为 0x01,它 后面可以带一个参数,该参数表示多少秒后复位(实际的复位命令不含参数,此处只是为了讲 解指令编码与参数的区别)。

-- 注:这里的片选信号类似于使能引脚,电平拉低,相当于使能,电平拉高,相当于失能

当需要把像素数据写入 GRAM 时,过程很类似,把片选信号 CSX 拉低后,再把数据/命令选择信号线 D/CX置为高电平,这时由 D[17:0]传输的数据则会被 ILI9341 保存至它的 GRAM 中。


上述总结来说

-- 对于 ILI9341 这个液晶驱动芯片,单片机对于他的驱动,针对显示而言。

  • 0x2A(设置列地址:宽度)
  • 0x2B(设置页地址:高度)
  • 0x2C(写数据:像素点颜色)

-- 通过 8080 写时序,完成这三个指令的发送,用这三个指令就能实现屏幕的显示操作


  • 现在他通信的话就需要一个8080的接口,但是该单片机上没有8080,下面讲fsmc模拟800时序

FSMC 模拟 8080 时序信号

-- FSMC介绍

STM32 控制器芯片内部有一定大小的 SRAM 及 FLASH 作为内存和程序存储空间,但当程序较大,内存和 程序空间不足时,就需要在 STM32 芯片的外部扩展存储器了。扩展内存时一般使用 SRAM 和 SDRAM 存储器, 但 STM32F1 系列的芯片不支持扩展 SDRAM(最新的一些系列芯片支持),它仅支持使用 FSMC 外设扩展 SRAM, 我们以 SRAM 为例讲解如何为 STM32 扩展内存。

  • 总结来说FSMC就是来扩展内存的

LCD屏幕代码的实现

  • 1、初始化 IO FSMC 是片上外设,只要是需要 FSMC 自动调节的全部为 复用
    LCD_BL 背光 配置成通用推挽输出 

    alt text

  • 2、配置 FSMC – SRAM

  • 3、我们操作的是个屏幕,地址线没有实际意义 但是硬件已经确定了,A10 这个引脚有意义 DC 如果想要输出数据 DC – 1,那么我们往哪一个地址内写数据?只要符合 A10 输出 1、NE4 自动选中的地址即可。

alt text

alt text

-- 显示原理—设置一个区域然后逐个像素点的发送色彩

2A -- 设置开始列 和 结束列
2B 设置开始行 结束行
2C 写数据指令
2A 发送设置列的指令
X 开始列
X+W 结束列
2B 发送设置行的指令
Y 开始行
Y+H 结束行
2C 发送写数据指令
循环发送对应的颜色数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2203272.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unsupervised Deep Embedding for Clustering Analysis

0. 论文信息 标题&#xff1a;Unsupervised Deep Embedding for Clustering Analysis期刊&#xff1a;International Conference on Machine Learning作者&#xff1a;Junyuan Xie&#xff0c;Ross Girshick&#xff0c;Ali Farhadi机构&#xff1a;University of Washington&…

每日一题|3162. 优质数对的总数 I、II|因子分解、计数方法

第一题非常简单的暴力解法。 class Solution:def numberOfPairs(self, nums1: List[int], nums2: List[int], k: int) -> int:nums2_ [i * k for i in nums2]count 0for i in nums1:for j in nums2_:count 0 if i % j else 1return count 第二题的难度提升在数量级在10万…

[java毕业设计]免费分享一套SpringBoot+Vue电影推荐(电影网)系统【论文+源码+SQL脚本】,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue电影推荐(电影网)系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue电影推荐(电影网)系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 如今社会上各行各业&#xff0c;都喜欢用…

大数据新视界 --大数据大厂之大数据如何重塑金融风险管理:精准预测与防控

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

第十七篇——无穷小(三):用动态和极限的眼光看世界

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 这个世界从互联网盛行信息爆炸的时候&#xff0c;就已经进入了无限思维时…

前端环境搭建一览记录

文章目录 写在前面Nodejs下载Nodejs介绍Nodejs下载方式nvm安装:安装Homebrew&#xff08;安装器&#xff09;(打开终端&#xff0c;输入下面的脚本)安装nvm验证安装是否成功配置环境内容查看环境内容刷新配置 nvm 使用如何使用nvm ls 查看当前安装的版本nvm use versionId 切换…

鸿蒙开发之ArkUI 界面篇 二十八 ForEach

ForEach语法格式如下&#xff1a; ForEach(数组名字,(Item&#xff0c;index) >{item要做的事情}) 实现下图效果&#xff1a; 代码如下&#xff1a; Entry Component struct IndexTest {State titles:string[] [学鸿蒙,赢取白富美,走向人生巅峰,影音娱乐,海外旅游]build…

并发编程-ReentrentLock概念及使用

1.ReentrantLock概念 ReentrantLock 是 Java 中的一种可重入锁&#xff0c;属于 java.util.concurrent.locks 包。它提供了比 synchronized 关键字更灵活的锁机制&#xff0c;允许更复杂的线程同步控制。以下是 ReentrantLock 的一些关键概念和特点&#xff1a; 可重入性&…

Linux的Redis安装部署

Redis是一个nosql数据库,速度快,key-value型数据库 1.root用户执行 yum install -y epel-release 配置epel仓库 2.安装Redis 命令: yum install -y redis 3.启动服务: systemctl start redis 4.注意关闭firewalld防火墙, 5.进入Redis服务端redis-cli

tensorflow入门案例手写数字识别人工智能界的helloworld项目落地1

参考 https://tensorflow.google.cn/?hlzh-cn https://tensorflow.google.cn/tutorials/keras/classification?hlzh-cn 项目资源 https://download.csdn.net/download/AnalogElectronic/89872174 文章目录 一、案例学习1、导入测试和训练数据集&#xff0c;定义模型&#xff…

el-tree 修改每个层级的背景色

目录 一、思路 二、代码 1. HTML部分 2. js部分 3. css部分 案例图 一、思路 使用 render-content 插槽来自定义节点内容。根据节点的层级动态添加 CSS 类。写一个方法&#xff0c;用于&#xff1a;递归地获取节点的层级。如果节点没有父节点&#xff0c;则返回当前层级…

嵌入式工业显示器在食品生产行业的应用

嵌入式工业显示器在食品生产行业的应用主要体现在以下几个方面&#xff1a; 一、自动化控制与精准监测 嵌入式工业显示器通常与各类传感器和执行器集成&#xff0c;能够实时显示生产线的运行状态&#xff0c;实现自动化控制和精准监测。在食品生产过程中&#xff0c;从原材料…

Vscode+Pycharm+Vue.js+WEUI+django火锅(三)理解Vue

新创建的Vue项目里面很多文件&#xff0c;对于新手&#xff0c;老老实实做一下了解。 1.框架逻辑 框架的逻辑都是相通的&#xff0c;花点时间理一下就清晰了。 2.文件目录及文件 创建好的vue项目下&#xff0c;主要的文件和文件夹要先认识一下&#xff0c;并与框架逻辑对应起…

Centos7 搭建单机elasticsearch

以下是在 CentOS 7 上安装 Elasticsearch 7.17.7 的完整步骤&#xff1a;&#xff08;数据默认保存在/var/lib/elasticsearch下&#xff0c;自行更改&#xff09; 一、装 Java 环境 Elasticsearch 是用 Java 编写的&#xff0c;所以需要先安装 Java 运行环境。 检查系统中是…

springboot酒店客房管理系统-计算机毕业设计源码43070

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…

模拟堆算法

题目 代码 #include <bits/stdc.h> using namespace std; const int N 1e510; int heap[N], sz, cnt; int th[N], ht[N]; void hswap(int a, int b) {swap(heap[a], heap[b]);swap(ht[a], ht[b]);swap(th[ht[a]], th[ht[b]]); } void down(int h) {int t h;if(2*h <…

【开源项目】Jsoncpp的简单使用

Jsoncpp是一个开源项目&#xff0c;它是一个用于处理JSON&#xff08;JavaScript Object Notation&#xff09;数据的C库。它支持将C结构化的数据转化为JSON字符串&#xff0c;也支持将JSON字符串转化为结构化数据 JSON&#xff08;JavaScript Object Notation&#xff09;数据…

质量好的宠物空气净化器分享,希喂、小米、范罗士性能大揭秘

双十一大家都打算买什么&#xff1f;国庆小长假刚结束&#xff0c;没想到下周就开始预售付定金了。看了一圈自己没有什么想买的&#xff0c;就打算给我家毛孩子买点什么。之前一直很纠结要不要买宠物空气净化器&#xff0c;觉得有点贵迟迟没入手&#xff0c;去看了眼&#xff0…

直线导轨在自动化设备中需要注意什么?

直线导轨属于精密传动配件&#xff0c;因而在使用时要求有相当地慎重态度&#xff0c;如果使用不当&#xff0c;也不能达到预期的性能效果&#xff0c;尤其是保管和保养不当&#xff0c;很容易造成导轨失效等问题&#xff0c;导致无法正常使用。因此&#xff0c;自动化设备中使…

UI设计岗前训练

UI设计&#xff0c;全称User Interface Design&#xff0c;即用户界面设计&#xff0c;是指对软件或应用程序的人机交互、操作逻辑、界面美观的整体设计。它涉及软件的操作流程、逻辑、布局、色彩、字体、图标、按钮、动画效果等多个方面&#xff0c;旨在提升用户体验和满意度。…