STM32传感器模块编程实践(六) 1.8寸液晶屏TFT LCD彩屏简介及驱动源码

news2024/11/29 16:36:52

文章目录

    • 一.概要
    • 二.TFT彩屏主要参数
    • 三.TFT彩屏参考原理图
    • 四.TFT彩屏模块接线说明
    • 五.模块SPI通讯协议介绍
    • 六.TFT彩屏模块显示
      • 1.显示英文字符串
      • 2.显示数字
      • 3.显示中文
    • 七.TFT彩屏实现图片显示
    • 八.STM32单片机1.8寸 TFT LCD显示实验
      • 1.硬件准备
      • 2.软件工程
      • 3.软件主要代码
      • 4.实验效果
    • 九.小结

一.概要

TFT-LCD,全称Thin Film Transistor Liquid Crystal Display,即薄膜晶体管液晶显示器,是多数液晶显示器的一种,使用薄膜晶体管技术改善影象品质。它在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD 也被叫做真彩液晶显示器。

1.8寸TFT-LCD显示模块具有显示效果好、刷新速度要求低、接线方便、通用性强,性价比高等优点,可用于许多应用中:传感器监控和报警、温度监控器/风扇控制器等。

在这里插入图片描述

二.TFT彩屏主要参数

在这里插入图片描述

三.TFT彩屏参考原理图

模块原理图

在这里插入图片描述

四.TFT彩屏模块接线说明

接口为8针的单排插针,针间距为2.54mm。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

TFT LCD彩屏模块与单片机要8根线就能连接

板子与1.8寸TFT彩屏用杜邦线连接:
板子GND-----彩屏GND
板子3V3-----彩屏VCC
板子PA1-----彩屏SCL	 
板子PA2-----彩屏SDA
板子PA6-----彩屏RES
板子PA3-----彩屏DC
板子PA4-----彩屏CS
板子PA5-----彩屏BL 

五.模块SPI通讯协议介绍

SPI通讯时序
在这里插入图片描述
与常用的SPI协议不同的地方是:由于是只需要显示,故而将从机发送到主机的数据线(MISO)进
行了隐藏。
SCLK空闲时是低电平,当SCLK第一个下降沿时开始传输数据,使用GPAL=0, CPOL=0 ,按位传输,高位在前,低位在后。

写操作代码

void LCD_Writ_Bus(uint8_t dat) 
{	
	uint8_t i;
	LCD_CS_Clr();//CS拉低
	for(i=0;i<8;i++)//总共8位数据
	{			  
		LCD_SCLK_Clr();//CLK拉低
		if(dat&0x80)//如果需要输出高电平
		{
		   LCD_MOSI_Set();//数据线置高
		}
		else
		{
		   LCD_MOSI_Clr();//数据线置低
		}
		LCD_SCLK_Set();//CLK拉高
		dat<<=1;//数据左移1位
	}	
  LCD_CS_Set();//CS拉高
}

六.TFT彩屏模块显示

1.8寸TFT LCD彩屏是128x160像素的分辨率,我们可以理解为:水平方向分布了128个像素点,垂直方向分布了160个像素点。我们在画点的时候坐标Y的取值为0-159,坐标X的取值为0-127。
下图红色箭头的方向就是坐标递增的方向。
在这里插入图片描述

PCtoLCD2002 是专业的取字模软件,采用C语言和汇编语言两种格式,支持逐行、逐列、行列、列行四种取模方式,可以选择字体、大小、文字的长宽,自动生成你想要的字符,能生成字符字模,中文字模。

软件只需要几步就能轻松生成字符
在这里插入图片描述

1.显示英文字符串

程序中调用函数就可以实现:

LCD_ShowString(18,60,“HELLO WORLD”,BLUE,WHITE,16,0);//显示字符串“HELLO WORLD”

/******************************************************************************
      函数说明:显示字符串
      入口数据:x,y显示坐标
                *p 要显示的字符串
                fc 字的颜色
                bc 字的背景色
                sizey 字号
                mode:  0非叠加模式  1叠加模式
      返回值:  无
******************************************************************************/
void LCD_ShowString(uint16_t x,uint16_t y,const uint8_t *p,uint16_t fc,uint16_t bc,uint8_t sizey,uint8_t mode)
{         
	while(*p!='\0')
	{       
		LCD_ShowChar(x,y,*p,fc,bc,sizey,mode);
		x+=sizey/2;
		p++;
	}  
}

多种大小的字体都已经有了,直接选择调用就可以。
在这里插入图片描述

2.显示数字

程序中调用函数就可以实现:
LCD_ShowIntNum(50,110,Distance,3,RED,WHITE,12);//显示变量数字值

/******************************************************************************
      函数说明:显示整数变量
      入口数据:x,y显示坐标
                num 要显示整数变量
                len 要显示的位数
                fc 字的颜色
                bc 字的背景色
                sizey 字号
      返回值:  无
******************************************************************************/
void LCD_ShowIntNum(uint16_t x,uint16_t y,uint16_t num,uint8_t len,uint16_t fc,uint16_t bc,uint8_t sizey)
{         	
	uint8_t t,temp;
	uint8_t enshow=0;
	uint8_t sizex=sizey/2;
	for(t=0;t<len;t++)
	{
		temp=(num/mypow(10,len-t-1))%10;
		if(enshow==0&&t<(len-1))
		{
			if(temp==0)
			{
				LCD_ShowChar(x+t*sizex,y,' ',fc,bc,sizey,0);
				continue;
			}else enshow=1; 
		 	 
		}
	 	LCD_ShowChar(x+t*sizex,y,temp+48,fc,bc,sizey,0);
	}
} 

多种大小的字体都已经有了,直接选择调用就可以。
在这里插入图片描述

3.显示中文

显示中文,主要涉及到一个中文字库的制作,操作如下:

取模软件配置:
在这里插入图片描述

常用的点阵大小有12x12、16x16、24x24等,每个点用0或1表示,0代表没有点,1代表有点。这样,每个汉字就可以通过一个二进制数组来表示。

例如汉字24x24点阵如下图显示
在这里插入图片描述
24*24点阵,所以一个汉字横向是24个点,纵向也是24个点。取模顺序是从低到高,即左上角第一个点作为最低位,然后逐行进行取模。

其中"光"字C语言数组如下:

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x20,0x18,0x02,0x40,0x18,0x06,0x80,0x18,0x03,0x80,0x19,0x01,0x00,0x99,0x00,0x00,0x98,0x10,0xFE,0xFF,0x3F,0x00,0x63,0x00,0x00,0x63,0x00,0x00,0x63,0x00,0x00,0x61,0x00,0x00,0x61,0x00,0x00,0x61,0x20,0x80,0x61,0x20,0x80,0x60,0x20,0x40,0x60,0x20,0x20,0x40,0x60,0x18,0xC0,0x3F,0x06,0x00,0x00,0x00,0x00,0x00,/“光”/

如下图所示,从左上角原点开始,每次取8个点作为1个字节内容(1个字节的内容低位在前,高位在后,假如某个字节的像素点是00000100,16进制就是0x20)。24个点,刚好是3个字节,从左往右依次类推,第一行就是0x00,0x00,0x00,第二行也是0x00,0x00,0x00,第三行就是0x00,0x18,0x00,第四行也是0x00,0x18,0x00,第五行就是0x20,0x18,0x02。

以此类推,24行数据都取完之后,就有上述的数组表格。

在这里插入图片描述

生成好的数组拷贝到程序的tfont24数组,前面再加中文字符“光”,就能直接调用函数显示中文了

const typFNT_GB24 tfont24[]={

"光",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x20,0x18,0x02,0x40,
0x18,0x06,0x80,0x18,0x03,0x80,0x19,0x01,0x00,0x99,0x00,0x00,0x98,0x10,0xFE,0xFF,
0x3F,0x00,0x63,0x00,0x00,0x63,0x00,0x00,0x63,0x00,0x00,0x61,0x00,0x00,0x61,0x00,
0x00,0x61,0x20,0x80,0x61,0x20,0x80,0x60,0x20,0x40,0x60,0x20,0x20,0x40,0x60,0x18,
0xC0,0x3F,0x06,0x00,0x00,0x00,0x00,0x00,/*"光",0*/
/* (24 X 24 , 宋体 )*/
"子",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0x00,0x00,0x06,0x00,
0x00,0x01,0x00,0x80,0x00,0x00,0x60,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,
0x10,0xFE,0xFF,0x3F,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,
0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x80,0x19,0x00,0x00,
0x1E,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,/*"子",1*/
/* (24 X 24 , 宋体 )*/

"物",0x00,0x00,0x00,0x40,0x20,0x00,0xC0,0x20,0x00,0x40,0x30,0x00,0x58,0x10,0x00,0x48,
0xF0,0x3F,0x48,0xC8,0x24,0xF8,0x4B,0x26,0x44,0x44,0x26,0x44,0x22,0x22,0x42,0x20,
0x22,0x42,0x10,0x23,0x40,0x13,0x31,0xC0,0x08,0x31,0x70,0x84,0x31,0x4E,0x82,0x30,
0x44,0x40,0x30,0x40,0x20,0x10,0x40,0x10,0x10,0x40,0x08,0x10,0x40,0x84,0x1F,0x40,
0x02,0x0E,0x40,0x00,0x02,0x00,0x00,0x00,/*"物",2*/
/* (24 X 24 , 宋体 )*/

"联",0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x20,0x1C,0xFE,0x27,0x0C,0x08,0x61,0x04,0x08,
0x61,0x02,0x08,0x21,0x12,0x08,0xFD,0x3F,0xF8,0x81,0x01,0x08,0x81,0x01,0x08,0x81,
0x01,0x08,0x81,0x21,0xF8,0xFF,0x7F,0x08,0x81,0x01,0x08,0x81,0x02,0x08,0x85,0x02,
0x88,0x83,0x02,0x78,0x41,0x04,0x0C,0x41,0x0C,0x00,0x21,0x08,0x00,0x11,0x38,0x00,
0x09,0x70,0x00,0x07,0x00,0x00,0x00,0x00,/*"联",3*/
/* (24 X 24 , 宋体 )*/
};

LCD_ShowChinese(12,8,"光子物联",BLUE,WHITE,24,0);//显示中文光子物联,大小24*24点阵,取模软件配置:阴码,逐行式,24X24点阵,逆向,C51格式

/******************************************************************************
      函数说明:显示汉字串
      入口数据:x,y显示坐标
                *s 要显示的汉字串
                fc 字的颜色
                bc 字的背景色
                sizey 字号 可选 16 24 32
                mode:  0非叠加模式  1叠加模式
      返回值:  无
******************************************************************************/
void LCD_ShowChinese(uint16_t x,uint16_t y,uint8_t *s,uint16_t fc,uint16_t bc,uint8_t sizey,uint8_t mode)
{
	while(*s!=0)
	{
		if(sizey==12) LCD_ShowChinese12x12(x,y,s,fc,bc,sizey,mode);
		else if(sizey==16) LCD_ShowChinese16x16(x,y,s,fc,bc,sizey,mode);
		else if(sizey==24) LCD_ShowChinese24x24(x,y,s,fc,bc,sizey,mode);
		else if(sizey==32) LCD_ShowChinese32x32(x,y,s,fc,bc,sizey,mode);
		else return;
		s+=2;
		x+=sizey;
	}
}

/******************************************************************************
      函数说明:显示单个24x24汉字
      入口数据:x,y显示坐标
                *s 要显示的汉字
                fc 字的颜色
                bc 字的背景色
                sizey 字号
                mode:  0非叠加模式  1叠加模式
      返回值:  无
******************************************************************************/
void LCD_ShowChinese24x24(uint16_t x,uint16_t y,uint8_t *s,uint16_t fc,uint16_t bc,uint8_t sizey,uint8_t mode)
{
	uint8_t i,j,m=0;
	uint16_t k;
	uint16_t HZnum;//汉字数目
	uint16_t TypefaceNum;//一个字符所占字节大小
	uint16_t x0=x;
	TypefaceNum=(sizey/8+((sizey%8)?1:0))*sizey;
	HZnum=sizeof(tfont24)/sizeof(typFNT_GB24);	//统计汉字数目
	for(k=0;k<HZnum;k++) 
	{
		if ((tfont24[k].Index[0]==*(s))&&(tfont24[k].Index[1]==*(s+1)))
		{ 	
			LCD_Address_Set(x,y,x+sizey-1,y+sizey-1);
			for(i=0;i<TypefaceNum;i++)
			{
				for(j=0;j<8;j++)
				{	
					if(!mode)//非叠加方式
					{
						if(tfont24[k].Msk[i]&(0x01<<j))LCD_WR_DATA(fc);
						else LCD_WR_DATA(bc);
						m++;
						if(m%sizey==0)
						{
							m=0;
							break;
						}
					}
					else//叠加方式
					{
						if(tfont24[k].Msk[i]&(0x01<<j))	LCD_DrawPoint(x,y,fc);//画一个点
						x++;
						if((x-x0)==sizey)
						{
							x=x0;
							y++;
							break;
						}
					}
				}
			}
		}				  	
		continue;  //查找到对应点阵字库立即退出,防止多个汉字重复取模带来影响
	}
} 

七.TFT彩屏实现图片显示

Image2Lcdv2.9 是一款简单实用的图片转LCD显示工具软件,它能使你把各种来源的图片转换成特定的数据格式以用来匹配单片机系统所需要的显示数据格式。

在这里插入图片描述

为适应128*160这款TFT-LCD,需更改配置如下
在这里插入图片描述
打开图片文件,生成.c文件
在这里插入图片描述

拷贝图片生成的.c文件中的数组到程序中pic.h文件中的gImage_1数组
在这里插入图片描述

调用图片显示函数实现图片的显示
LCD_ShowPicture(0,0,128,160,gImage_1);//显示图片,通过Image2Lcd 2.9转换图片成C语言数组放入gImage_1

/******************************************************************************
      函数说明:显示图片
      入口数据:x,y起点坐标
                length 图片长度
                width  图片宽度
                pic[]  图片数组    
      返回值:  无
******************************************************************************/
void LCD_ShowPicture(uint16_t x,uint16_t y,uint16_t length,uint16_t width,const uint8_t pic[])
{
	uint16_t i,j;
	uint32_t k=0;
	LCD_Address_Set(x,y,x+length-1,y+width-1);
	for(i=0;i<length;i++)
	{
		for(j=0;j<width;j++)
		{
			LCD_WR_DATA8(pic[k*2]);
			LCD_WR_DATA8(pic[k*2+1]);
			k++;
		}
	}			
}

八.STM32单片机1.8寸 TFT LCD显示实验

1.硬件准备

STLINK接STM32F103C8T6小系统板,STLINK接电脑USB口。

板子与1.8寸TFT彩屏用杜邦线连接:
板子GND-----彩屏GND
板子3V3-----彩屏VCC
板子PA1-----彩屏SCL
板子PA2-----彩屏SDA
板子PA6-----彩屏RES
板子PA3-----彩屏DC
板子PA4-----彩屏CS
板子PA5-----彩屏BL

在这里插入图片描述

2.软件工程

打开STM32CubeMX软件,新建工程
在这里插入图片描述
Part Number处输入STM32F103C8,再双击就创建新的工程
在这里插入图片描述
配置下载口引脚
在这里插入图片描述
配置外部晶振引脚
在这里插入图片描述

配置系统主频
在这里插入图片描述
LCD控制引脚配置成输出
在这里插入图片描述

配置工程文件名,保存路径,KEIL5工程输出方式
在这里插入图片描述
生成工程
在这里插入图片描述
用Keil5打开工程
在这里插入图片描述

添加代码
在这里插入图片描述

驱动引脚配置
在这里插入图片描述

中文字库文件修改
在这里插入图片描述

添加显示代码
在这里插入图片描述

3.软件主要代码


 int main(void)
{
  /* USER CODE BEGIN 1 */
	uint8_t Distance=0;
  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
	LCD_Init();//LCD初始化
	LCD_Fill(0,0,LCD_W,LCD_H,WHITE);
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
	LCD_ShowChinese(12,8,"光子物联",BLUE,WHITE,24,0);//显示中文光子物联,//取模软件配置:阴码,逐行式,24X24点阵,逆向,C51格式
	LCD_ShowString(18,60,"HELLO WORLD",BLUE,WHITE,16,0);//显示字符串	
	LCD_ShowIntNum(50,110,Distance,3,RED,WHITE,12);//显示数字
	Distance++;
	HAL_Delay(200);//等待200ms


    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
} 


/******************************************************************************
      函数说明:显示字符串
      入口数据:x,y显示坐标
                *p 要显示的字符串
                fc 字的颜色
                bc 字的背景色
                sizey 字号
                mode:  0非叠加模式  1叠加模式
      返回值:  无
******************************************************************************/
void LCD_ShowString(uint16_t x,uint16_t y,const uint8_t *p,uint16_t fc,uint16_t bc,uint8_t sizey,uint8_t mode)
{         
	while(*p!='\0')
	{       
		LCD_ShowChar(x,y,*p,fc,bc,sizey,mode);
		x+=sizey/2;
		p++;
	}  
}
/******************************************************************************
      函数说明:显示单个字符
      入口数据:x,y显示坐标
                num 要显示的字符
                fc 字的颜色
                bc 字的背景色
                sizey 字号
                mode:  0非叠加模式  1叠加模式
      返回值:  无
******************************************************************************/
void LCD_ShowChar(uint16_t x,uint16_t y,uint8_t num,uint16_t fc,uint16_t bc,uint8_t sizey,uint8_t mode)
{
	uint8_t temp,sizex,t,m=0;
	uint16_t i,TypefaceNum;//一个字符所占字节大小
	uint16_t x0=x;
	sizex=sizey/2;
	TypefaceNum=(sizex/8+((sizex%8)?1:0))*sizey;
	num=num-' ';    //得到偏移后的值
	LCD_Address_Set(x,y,x+sizex-1,y+sizey-1);  //设置光标位置 
	for(i=0;i<TypefaceNum;i++)
	{ 
		if(sizey==12)temp=ascii_1206[num][i];		     //调用6x12字体
		else if(sizey==16)temp=ascii_1608[num][i];		 //调用8x16字体
		else if(sizey==24)temp=ascii_2412[num][i];		 //调用12x24字体
		else if(sizey==32)temp=ascii_3216[num][i];		 //调用16x32字体
		else return;
		for(t=0;t<8;t++)
		{
			if(!mode)//非叠加模式
			{
				if(temp&(0x01<<t))LCD_WR_DATA(fc);
				else LCD_WR_DATA(bc);
				m++;
				if(m%sizex==0)
				{
					m=0;
					break;
				}
			}
			else//叠加模式
			{
				if(temp&(0x01<<t))LCD_DrawPoint(x,y,fc);//画一个点
				x++;
				if((x-x0)==sizex)
				{
					x=x0;
					y++;
					break;
				}
			}
		}
	}   	 	  
}

4.实验效果

显示中文,英文,数字

在这里插入图片描述

显示图片
在这里插入图片描述

九.小结

TFT-LCD(薄膜晶体管液晶显示屏)主要应用在消费电子领域,其中包括智能手机、平板电脑、笔记本电脑、电视机等,这种显示屏因其轻薄、省电和高性能的特点而受到青睐。学会用STM32驱动TFT-LCD,能让产品显的更加高端美观。

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

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

相关文章

【C++】——list 容器的解析与极致实现

人的一切痛苦&#xff0c;本质上都是对自己的无能的愤怒。 —— 王小波 目录 1、list 介绍 2、list的使用 2.1 list 的构造 2.2 iterator 的使用 2.3 list 的修改 2.4一些特殊接口 2.5 迭代器失效问题 3、实现list 3.1底层结构 结点类 list类 迭代器类 3.2功能接…

VLOG视频制作解决方案,开发者可自行定制包装模板

无论是旅行见闻、美食探店&#xff0c;还是日常琐事、创意挑战&#xff0c;每一个镜头背后都蕴含着创作者无限的热情和创意。然而&#xff0c;面对纷繁复杂的视频编辑工具&#xff0c;美摄科技凭借其前沿的视频制作技术和创新的解决方案&#xff0c;为每一位视频创作者提供了开…

服务端负载均衡和客户端负载

负载均衡分为服务端负载均衡和客户端负载均衡&#xff0c;图解&#xff1a; 客户端的负载均衡还需要从注册中心获取集群部署的服务地址&#xff0c;其中客户的负载均衡器定时读取注册中心的IP和端口&#xff0c;然后缓存起来&#xff0c;这样以后可以先判断缓存IP和端口是否可用…

矩阵基础知识

矩阵定义 矩阵的定义 1.矩阵是由一组数按照矩形排列而成的数表。矩阵通常用大写字母表示&#xff0c;例如 AA、BB 等。矩阵中的每个数称为矩阵的元素或元。 一个 mn的矩阵 AA 可以表示为&#xff1a; 其中 aij表示矩阵 A中第i行第j列的元素。 矩阵的维度 1.矩阵的维度由它…

城市形态计算方法

1、天空可视率&#xff08;Sky view factor sky&#xff09; &#xff08;1&#xff09;准备地形数据、带高度的建筑矢量数据 &#xff08;2&#xff09;将建筑矢量数据投影栅格&#xff0c;利用栅格计算器和镶嵌至新栅格得到带有建筑高度数据的地形数据 &#xff08;3&…

[Windows] 屏幕截图工具Snipaste 开发过程更轻松

前言 老大&#xff1a;你去把用户登录代码写完。 老大&#xff1a;你把这周的周报发一下 老大&#xff1a;你把生产的数据清理一下。 结果… 今天刚把登录代码写完&#xff0c;下班&#xff0c;明天就处理别的事情去了&#xff01;&#xff01;&#xff01; 之后我就… 直接…

MATLAB智能算法 - AntColonyOptimization蚁群算法

AntColonyOptimization蚁群算法 智能算法是路线规划、深度学习等等一系列领域所使用的优化算法&#xff0c;是算法进阶之路的必备之路。 前言&#xff1a;本文主要围绕解决TSP旅行商问题展开&#xff0c;对于机器人的路线规划以及非线性方程求解的问题等解决方案 对于一些其他优…

线上找工作小程序源码系统 带完整的安装代码包以及搭建部署教程

系统概述 这款线上找工作小程序源码系统是一款集成了岗位发布、简历投递、在线沟通等核心功能的一站式解决方案。系统采用主流的技术栈开发&#xff0c;如PHP后端配合MySQL数据库&#xff0c;前端则利用了Vue.js框架或原生微信小程序技术&#xff0c;确保了系统的高性能与良好…

AWS账号与邮箱的关系解析

在当今数字化时代&#xff0c;云计算服务的普及使得越来越多的企业和个人用户开始使用亚马逊网络服务&#xff08;AWS&#xff09;。作为全球领先的云服务平台&#xff0c;AWS为用户提供了丰富的计算、存储和数据库服务。然而&#xff0c;对于许多新用户来说&#xff0c;关于AW…

IT圈大实话!卷运维不如卷网络安全

前言 在刚刚过去的金九银十&#xff0c;我进行了多场网络安全的技术面试&#xff0c;我发现最近很多从事运维的选择了辞职&#xff0c;转行到了网络安全这个发展路线。 说实话&#xff0c;运维工程师这个岗位在IT行业里面确实是处于最底层的&#xff0c;不管什么环节出现问题…

从“寻鲜市集”看巴奴产品主义的「新生命力」

【潮汐商业评论/原创】 “这个就是获得‘国家地理标志产品’的金阳青花椒&#xff0c;七分麻三分香&#xff0c;是麻辣火锅的灵魂&#xff1b;这个菌汤用了3种云南野生牛肝菌熬制&#xff0c;味道鲜香&#xff0c;口感顺滑&#xff1b;还有这个龙竹鲜笋可不得了&#xff0c;它…

【基于docker的深度学习训练环境】关键步骤记录

最近给公司搭建了一个小型的深度学习环境&#xff0c;实现了多人通过SSH对GPU资源的利用&#xff0c;下面对一些关键架构和易用性部分进行记录。 一、整体软硬件框架 1、硬件配置&#xff0c;采用的双GPU的方案&#xff0c;两块消费级显卡。 2、应用层架构 宿主机系统为ubunt…

猎板PCB:军工武器系统中的PCB线路板技术要求

PCB线路板在军工武器系统中的应用非常广泛&#xff0c;它们是现代军事装备中不可或缺的组成部分。军工级PCB因其在极端环境下的稳定性和可靠性而受到重视&#xff0c;这些环境可能包括高温、低温、高湿度、强辐射、高震动等条件。以下是一些关键点&#xff0c;概述了PCB线路板在…

基于华为云智慧生活生态链设计的智能鱼缸

一. 引言 1.1 项目背景 随着智能家居技术的发展和人们对高品质生活的追求日益增长&#xff0c;智能鱼缸作为一种结合了科技与自然美的家居装饰品&#xff0c;正逐渐成为智能家居领域的新宠。本项目旨在设计一款基于华为云智慧生活生态链的智能鱼缸&#xff0c;它不仅能够提供…

vue3播放m3u8格式hls监控流

1. 摄像头的hls监控流不同于普通m3u8的视频&#xff0c;video标签&#xff0c;iframe&#xff0c;videojs&#xff0c;vue-video-player无法解析 2. 解决办法 更换LivePlayer插件 官网https://www.liveqing.com/docs/manuals/LivePlayer.html#%E5%B1%9E%E6%80%A7-property 3…

kubernets(二)

集群操作 查看集群信息 kubectl get查看各组件信息 格式&#xff1a;kubectl get 资源类型 【资源名】 【选项】 events #查看集群中的所有日志信息 -o wide # 显示资源详细信息&#xff0c;包括节点、地址... -o yaml/json #将当前资源对象输出至 yaml/json 格式文…

windows安装VMware虚拟机 在虚拟机中安装Centos系统

文章目录 安装虚拟机Centos7.5 软硬件安装安装Centos所需的硬件配置处理器与内核 安装虚拟机 Centos7.5 软硬件安装 安装Centos所需的硬件 配置处理器与内核 一个CPU可以有多个内核 此处可以看出该电脑一个处理器&#xff0c;四个内核。配置虚拟器的原则是不能超过总数的一半…

Mybatis全局配置介绍

【mybatis全局配置介绍】 mybatis-config.xml&#xff0c;是MyBatis的全局配置文件&#xff0c;包含全局配置信息&#xff0c;如数据库连接参数、插件等。整个框架中只需要一个即可。 1、mybatis全局配置文件是mybatis框架的核心配置&#xff0c;整个框架只需一个&#xff1b…

BFS处理最短路问题

BFS与最短路问题小结 - AcWing 题目 这题就可以BFS&#xff08;边权值相同&#xff09;&#xff08;g[i][j]也可以为inf&#xff0c;g[i][i]还能为0&#xff09; 代码 #include <bits/stdc.h> using namespace std; const int N 510; const int inf 0x3f3f3f3f; int n…

【火山引擎】AIGC图像风格化 | 风格实践 | PYTHON

目录 1 准备工作 2 实践 代码 效果图 1 准备工作 ① 服务开通 确保已开通需要访问的服务。您可前往火山引擎控制台,在左侧菜单中选择或在顶部搜索栏中搜索需要使用的服务,进入服务控制台内完成开通流程。