蓝桥杯嵌入式第十五届模拟考试3解析

news2024/11/15 19:44:16

1  题目

2  程序

/* USER CODE BEGIN PTD */
char buf1[20],buf2[20],buf3[20],buf4[20],buf5[20],buf6[20],buf7[20],buf8[20],buf9[20];
struct keys
{
	int step;
	int length;
	int state;
}key[5];
int display;
double v1,v2;
int t;
double v1l=1.2,v1u=2.2,v2l=1.4,v2u=3.0;
double vu[6]={0,2.2,2.4,2.6,2.8,3.0},vl[6]={0,1.2,1.4,1.6,1.8,2.0};
int choice;
int i=1,j=1,k=2,p=5;
double ok1,nok1,ok2,nok2;
double p1,p2;
int led1,led2;
int cnt1,cnt2;
char tran[100],tran1[10]={"R37"},tran2[10]={"R38"};

/* USER CODE END PTD */

/* USER CODE BEGIN PFP */
double getADC()
{
	HAL_ADC_Start(&hadc1);
	HAL_ADC_Start(&hadc2);
	v1=HAL_ADC_GetValue(&hadc2);
//	t=100000; while(t--);
	v2=HAL_ADC_GetValue(&hadc1);
//	t=100000; while(t--);
	sprintf(buf2,"     R37:%.2lfV",v1*3.3/4096);
	sprintf(buf3,"     R38:%.2lfV",v2*3.3/4096);
}
void LED_CLOSE()
{
	HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15,GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
}
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	if(htim->Instance==TIM1)
	{
		key[1].state=HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0);
		key[2].state=HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1);
		key[3].state=HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2);
		key[4].state=HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0);
		switch(key[1].step)
		{
			case 0:
			{
				if(key[1].state==GPIO_PIN_RESET)
				{
					key[1].step++;
				}
			}
			break;
			case 1:
			{
				if(key[1].state==GPIO_PIN_RESET)
				{
					display++;
					LCD_Clear(Black);
					if(display%3==0)
					{
						LCD_DisplayStringLine(Line1,(uint8_t*)buf1);
						LCD_DisplayStringLine(Line3,(uint8_t*)buf2);
						LCD_DisplayStringLine(Line4,(uint8_t*)buf3);
					}
					if(display%3==1)
					{
						LCD_DisplayStringLine(Line1,(uint8_t*)buf4);
						LCD_DisplayStringLine(Line3,(uint8_t*)buf5);
						LCD_DisplayStringLine(Line4,(uint8_t*)buf6);
					}
					if(display%3==2)
					{
						LCD_DisplayStringLine(Line1,(uint8_t*)buf7);
						LCD_DisplayStringLine(Line3,(uint8_t*)buf8);
						LCD_DisplayStringLine(Line4,(uint8_t*)buf9);
					}
					key[1].step++;
				}
				else
				{
					key[1].step=0;
				}
			}
			break;
			case 2:
			{
				if(key[1].state==GPIO_PIN_SET)
				{
					key[1].step=0;
				}
			}
			break;
		}
		
		
		if(display%3==1)
		{
			switch(key[2].step)
			{
				case 0:
				{
					if(key[2].state==GPIO_PIN_RESET)
					{
						key[2].step++;
					}
				}
				break;
				case 1:
				{
					if(key[2].state==GPIO_PIN_RESET)
					{
						choice++;
						key[2].step++;
					}
					else
					{
						key[2].step=0;
					}
				}
				break;
				case 2:
				{
					if(key[2].state==GPIO_PIN_SET)
					{
						key[2].step=0;
					}
				}
				break;
			}
		}
		
		
		if(display%3==0)
		{
			switch(key[2].step)
			{
				case 0:
				{
					if(key[2].state==GPIO_PIN_RESET)
					{
						key[2].step++;
					}
				}
				break;
				case 1:
				{
					if(key[2].state==GPIO_PIN_RESET)
					{
						if(v1*3.3/4096<vu[j]&&v1*3.3/4096>vl[i])
						{
							ok1++;
							led1=1;
						}
						else
						{
							nok1++;
						}
						p1=ok1/(ok1+nok1);
						sprintf(buf8,"     PR37:%.1lf%%",p1*100);
						//LCD_DisplayStringLine(Line3,(uint8_t*)buf8);
						key[2].step++;
					}
					else
					{
						key[2].step=0;
					}
				}
				break;
				case 2:
				{
					if(key[2].state==GPIO_PIN_SET)
					{
						key[2].step=0;
					}
				}
				break;
			}
		}
		
		if(display%3==1)
		{
			switch(key[3].step)
			{
				case 0:
				{
					if(key[3].state==GPIO_PIN_RESET)
					{
						key[3].step++;
					}
				}
				break;
				case 1:
				{
					if(key[3].state==GPIO_PIN_RESET)
					{
						if(choice%4==1)
						{
							i++;
							if(i==6) i=1;
							sprintf(buf5,"    SR37:%.1lf-%.1lf",vl[i],vu[j]);
							sprintf(buf6,"    SR38:%.1lf-%.1lf",vl[k],vu[p]);
							ok1=0;
							nok1=0;
							p1=0;
							sprintf(buf8,"     PR37:0.0%%");
						}
						if(choice%4==0)
						{
							j++;
							if(j==6) j=1;
							sprintf(buf5,"    SR37:%.1lf-%.1lf",vl[i],vu[j]);
							sprintf(buf6,"    SR38:%.1lf-%.1lf",vl[k],vu[p]);
							ok1=0;
							nok1=0;
							p1=0;
							sprintf(buf8,"     PR37:0.0%%");
						}
						if(choice%4==3)
						{
							k++;
							if(k==6) k=1;
							sprintf(buf5,"    SR37:%.1lf-%.1lf",vl[i],vu[j]);
							sprintf(buf6,"    SR38:%.1lf-%.1lf",vl[k],vu[p]);
							ok2=0;
							nok2=0;
							p2=0;
							sprintf(buf9,"     PR38:0.0%%"); 
						}
						if(choice%4==2)
						{
							p++;
							if(p==6) p=1;
							sprintf(buf5,"    SR37:%.1lf-%.1lf",vl[i],vu[j]);
							sprintf(buf6,"    SR38:%.1lf-%.1lf",vl[k],vu[p]);
							ok2=0;
							nok2=0;
							p2=0;
							sprintf(buf9,"     PR38:0.0%%"); 
						}
						
						LCD_DisplayStringLine(Line3,(uint8_t*)buf5);
						LCD_DisplayStringLine(Line4,(uint8_t*)buf6);
						key[3].step++;
					}
					else
					{
						key[3].step=0;
					}
				}
				break;
				case 2:
				{
					if(key[3].state==GPIO_PIN_SET)
					{
						key[3].step=0;
					}
				}
				break;
			}
		}
		
		if(display%3==0)
		{
			switch(key[3].step)
			{
				case 0:
				{
					if(key[3].state==GPIO_PIN_RESET)
					{
						key[3].step++;
					}
				}
				break;
				case 1:
				{
					if(key[3].state==GPIO_PIN_RESET)
					{
						if(v2*3.3/4096<vu[p]&&v2*3.3/4096>vl[k])
						{
							ok2++;
							led2=1;
						}
						else
						{
							nok2++;
						}
						p2=ok2/(ok2+nok2);
						sprintf(buf9,"     PR38:%.1lf%%",p2*100);
						//LCD_DisplayStringLine(Line3,(uint8_t*)buf8);
						key[3].step++;
					}
					else
					{
						key[3].step=0;
					}
				}
				break;
				case 2:
				{
					if(key[3].state==GPIO_PIN_SET)
					{
						key[3].step=0;
					}
				}
				break;
			}
		}
		if(display%3==1)
		{
			switch(key[4].step)
			{
				case 0:
				{
					if(key[4].state==GPIO_PIN_RESET)
					{
						key[4].step++;
					}
				}
				break;
				case 1:
				{
					if(key[4].state==GPIO_PIN_RESET)
					{
						if(choice%4==1)
						{
							i--;
							if(i==0) i=5;
							sprintf(buf5,"    SR37:%.1lf-%.1lf",vl[i],vu[j]);
							sprintf(buf6,"    SR38:%.1lf-%.1lf",vl[k],vu[p]);
						}
						if(choice%4==0)
						{
							j--;
							if(j==0) j=5;
							sprintf(buf5,"    SR37:%.1lf-%.1lf",vl[i],vu[j]);
							sprintf(buf6,"    SR38:%.1lf-%.1lf",vl[k],vu[p]);
						}
						if(choice%4==3)
						{
							k--;
							if(k==0) k=5;
							sprintf(buf5,"    SR37:%.1lf-%.1lf",vl[i],vu[j]);
							sprintf(buf6,"    SR38:%.1lf-%.1lf",vl[k],vu[p]);
						}
						if(choice%4==2)
						{
							p--;
							if(p==0) p=5;
							sprintf(buf5,"    SR37:%.1lf-%.1lf",vl[i],vu[j]);
							sprintf(buf6,"    SR38:%.1lf-%.1lf",vl[k],vu[p]);
						}
						LCD_DisplayStringLine(Line3,(uint8_t*)buf5);
						LCD_DisplayStringLine(Line4,(uint8_t*)buf6);
						key[4].step++;
					}
					else
					{
						key[4].step=0;
					}
				}
				break;
				case 2:
				{
					if(key[4].state==GPIO_PIN_SET)
					{
						key[4].step=0;
					}
				}
				break;
			}
		}
		
		if(display%3==2)
		{
			switch(key[4].step)
			{
				case 0:
				{
					if(key[4].state==GPIO_PIN_RESET)
					{
						key[4].step++;
					}
				}
				break;
				case 1:
				{
					if(key[4].state==GPIO_PIN_RESET)
					{
						ok1=0;
						nok1=0;
						p1=0;
						ok2=0;
						nok2=0;
						p2=0;
						sprintf(buf8,"     PR37:0.0%%");
						sprintf(buf9,"     PR38:0.0%%");
						LCD_DisplayStringLine(Line3,(uint8_t*)buf8);
						LCD_DisplayStringLine(Line4,(uint8_t*)buf9);
						key[4].step++;
					}
					else
					{
						key[4].step=0;
					}
				}
				break;
				case 2:
				{
					if(key[4].state==GPIO_PIN_SET)
					{
						key[4].step=0;
					}
				}
				break;
			}
		}
		getADC();
		if(display%3==0)
		{
			LCD_DisplayStringLine(Line1,(uint8_t*)buf1);
			LCD_DisplayStringLine(Line3,(uint8_t*)buf2);
			LCD_DisplayStringLine(Line4,(uint8_t*)buf3);
		}
		if(display%3==1)
		{
			LCD_DisplayStringLine(Line1,(uint8_t*)buf4);
			LCD_DisplayStringLine(Line3,(uint8_t*)buf5);
			LCD_DisplayStringLine(Line4,(uint8_t*)buf6);
		}
		if(display%3==2)
		{
			LCD_DisplayStringLine(Line1,(uint8_t*)buf7);
			LCD_DisplayStringLine(Line3,(uint8_t*)buf8);
			LCD_DisplayStringLine(Line4,(uint8_t*)buf9);
		}
		if(display%3==0)
		{
			HAL_GPIO_WritePin(GPIOC,GPIO_PIN_10,GPIO_PIN_RESET);
			HAL_GPIO_WritePin(GPIOC,GPIO_PIN_11|GPIO_PIN_12,GPIO_PIN_SET);
			HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
			HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
		}
		if(display%3==1)
		{
			HAL_GPIO_WritePin(GPIOC,GPIO_PIN_11,GPIO_PIN_RESET);
			HAL_GPIO_WritePin(GPIOC,GPIO_PIN_10|GPIO_PIN_12,GPIO_PIN_SET);
			HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
			HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
		}
		if(display%3==2)
		{
			HAL_GPIO_WritePin(GPIOC,GPIO_PIN_12,GPIO_PIN_RESET);
			HAL_GPIO_WritePin(GPIOC,GPIO_PIN_11|GPIO_PIN_10,GPIO_PIN_SET);
			HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
			HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
		}
		switch(led1)
		{
			case 0:
			{
				HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_SET);
				HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15,GPIO_PIN_SET);
				HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
				HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
			}
			break;
			case 1:
			{
				HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_RESET);
				HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15,GPIO_PIN_SET);
				HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
				HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
				cnt1++;
				if(cnt1==50)
				{
					cnt1=0;
					led1=0;
				}
			}
			break;
		}
		switch(led2)
		{
			case 0:
			{
				HAL_GPIO_WritePin(GPIOC,GPIO_PIN_9,GPIO_PIN_SET);
				HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15,GPIO_PIN_SET);
				HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
				HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
			}
			break;
			case 1:
			{
				HAL_GPIO_WritePin(GPIOC,GPIO_PIN_9,GPIO_PIN_RESET);
				HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15,GPIO_PIN_SET);
				HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
				HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
				cnt2++;
				if(cnt2==50)
				{
					cnt2=0;
					led2=0;
				}
			}
			break;
		}
	}
}

/* USER CODE END PFP */

/* USER CODE BEGIN 2 */
	LCD_Init();
	LCD_Clear(Black);
	LCD_SetBackColor(Black);
	LCD_SetTextColor(White);
	LED_CLOSE();
	HAL_TIM_Base_Start_IT(&htim1);
	sprintf(buf1,"       GOODS");
	sprintf(buf4,"      STANDARD");
	sprintf(buf5,"    SR37:1.2-2.2");
	sprintf(buf6,"    SR38:1.4-3.0");
	sprintf(buf7,"        PASS");
	sprintf(buf8,"     PR37:0.0%%");
	sprintf(buf9,"     PR38:0.0%%");
	HAL_UART_Receive_DMA(&huart1,(uint8_t*)tran,100);
	__HAL_UART_ENABLE_IT(&huart1,UART_IT_IDLE);
	LCD_DisplayStringLine(Line1,(uint8_t*)buf1);
	LCD_DisplayStringLine(Line3,(uint8_t*)buf2);
	LCD_DisplayStringLine(Line4,(uint8_t*)buf3);
	
  /* USER CODE END 2 */

void USART1_IRQHandler(void)
{
  /* USER CODE BEGIN USART1_IRQn 0 */
	if(__HAL_UART_GET_FLAG(&huart1,UART_FLAG_IDLE)==SET)
	{
		__HAL_UART_CLEAR_IDLEFLAG(&huart1);
		HAL_UART_DMAStop(&huart1);
		if(!strcmp(tran,tran1))
		{
			sprintf(zifuchuan,"R37:%d,%d,%.1lf%%",(int)ok1+(int)nok1,(int)ok1,p1*100);
			HAL_UART_Transmit_DMA(&huart1,(uint8_t*)zifuchuan,100);
		}
		else if(!strcmp(tran,tran2))
		{
			sprintf(zifuchuan,"R38:%d,%d,%.1lf%%",(int)ok2+(int)nok2,(int)ok2,p2*100);
			HAL_UART_Transmit_DMA(&huart1,(uint8_t*)zifuchuan,100);
		}
		else
		{
			HAL_UART_Transmit_DMA(&huart1,(uint8_t*)zifuchuan,0);
		}
		memset(tran,0,sizeof(tran));
		HAL_UART_Receive_DMA(&huart1,(uint8_t*)tran,100);
	}
	
  /* USER CODE END USART1_IRQn 0 */
  HAL_UART_IRQHandler(&huart1);
  /* USER CODE BEGIN USART1_IRQn 1 */

  /* USER CODE END USART1_IRQn 1 */
}

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

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

相关文章

深度学习复盘与论文复现D

文章目录 一、新环境搭建与适应1、easy_install和pip的安装使用2、关于安装包超时的解决方案3、brew安装包安装4、使用新环境运行以前项目5、解决win的pycharm修改内存后无法启动 二、Dataset 数据读取问题1、Lightning Torch 读取数据2、Pytorch的DataLoader数据读取机制3、Py…

Dify中的经济索引模式实现过程

当索引模式为经济时&#xff0c;使用离线的向量引擎、关键词索引等方式&#xff0c;降低了准确度但无需花费 Token。 一.提取函数**_extract** 根据不同文档类型进行内容的提取&#xff1a; def _extract(self, index_processor: BaseIndexProcessor, dataset_document: Data…

力扣经典题目之->移除值为val元素的讲解,的实现与讲解

一&#xff1a;题目 博主本文将用指向来形象的表示下标位的移动。 二&#xff1a;思路 1&#xff1a;两个整形&#xff0c;一个start&#xff0c;一个end&#xff0c;在一开始都 0&#xff0c;即这里都指向第一个元素。 2&#xff1a;在查到val之前&#xff0c;查一个&…

C语言 ——— 将一句英语短句中的单词进行倒置

目录 题目要求 代码实现 题目要求 将一句英语短句中的单词进行倒置&#xff0c;标点符号不倒置 如&#xff1a; 输入&#xff1a;"I like chongqing very much," 输出&#xff1a;"much, very chongqing like I" 代码实现 #include<stdio.h> #i…

c#与欧姆龙PLC通信——如何更改PLC的IP地址

前言 我们有时候需要改变欧姆龙Plc的ip地址,下图有两种更改方式,一种是已知之前Plc设置的Ip地址,还有一种是之前不知道Pl的Ip地址是多少,下面分别做介绍。 1、已知PLC的IP地址的情况下更改地址 假设已知PLC的Ip地址,比如本文中PLC的IP为192.168.1.2,我首先将电脑的IP地…

搭建调用链监控Zipkin和Sleuth

项目环境: win7、jdk8 1、添加依赖&#xff0c;添加了spring-cloud-starter-zipkin会自动导入Sleuth <!--Sleuth&#xff0c;zipkin--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</…

安卓onNewIntent 什么时候执行

一.详细介绍 onNewIntent 方法 onNewIntent 是 Android 中 Activity 生命周期的一部分。它在特定情况下被调用&#xff0c;主要用于处理新的 Intent&#xff0c;而不是创建新的 Activity 实例。详细介绍如下&#xff1a; 使用场景 singleTop 启动模式&#xff1a; 如果一个 Ac…

python+mysql图书管理系统,谈谈思路及实现代码

&#x1f3c6;本文收录于《CSDN问答解答》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&…

【链表】算法题(一) ---- 力扣 / 牛客

一、移除链表元素 移除链表中值为val的元素&#xff0c;并返回新的头节点 思路&#xff1a; 题目上这样说&#xff0c;我们就可以创建一个新的链表&#xff0c;将值不为val的节点&#xff0c;尾插到新的链表当中&#xff0c;最后返回新链表的头节点。 typedef struct ListNo…

java《字符串进阶篇》--习题逐语句分析及认识链式编程

一、前言 字符串相关的习题分享&#xff0c;随着学习的深入&#xff0c;应该要多做一些习题来巩固知识点&#xff0c;而不是一味的去学习新的东西。这几天尽可能地去给大家分享一些常用的方法及习题的讲解&#xff0c;希望大家认真观看&#xff0c;每一道题都有对应的分析。基…

GAMMA数据处理(八)

新学习了一个命令&#xff1a; SLC_cat_ScanSAR - Concatenate sequential ScanSAR burst SLC images (Sentinel-1, TSX, RCM...)&#xff0c;做数据拼接的。之前一直没有涉及到拼接问题&#xff0c;就一直没管。如果研究区包含两景SLC&#xff0c;可以拼接成一景。但是不知道…

计算机丢失CH375DLL怎么办,CH375DLL.DLL;计算机找不到CH375DLL怎么办,CH375DLL.DLL

翻遍CSDN&#xff0c;发现的文章不是只有描述不给资源&#xff0c;要不就是资源收费。 真是狗屎啊&#xff1b; 在千辛万苦找到资源后&#xff0c;我决定写一篇&#xff1b; 首先是资源文件下载 我上传的&#xff1a;&#xff08;肯定是0积分&#xff0c;如果收费了告诉我&…

Nuxt.js 错误侦探:useError 组合函数

title: Nuxt.js 错误侦探&#xff1a;useError 组合函数 date: 2024/7/14 updated: 2024/7/14 author: cmdragon excerpt: 摘要&#xff1a;文章介绍Nuxt.js中的useError组合函数&#xff0c;用于统一处理客户端和服务器端的错误&#xff0c;提供statusCode、statusMessage和…

IOT 可编程控制系统

IOT&#xff08;物联网&#xff09;可编程控制系统&#xff0c;如GF-MAXCC等&#xff0c;是一种集成了多种先进技术和功能的智能化控制设备&#xff0c;它能够在物联网系统中发挥关键作用&#xff0c;实现对多种设备的集中管理和控制。具体来说&#xff0c;IOT可编程控制系统的…

7天学会CANOpen

本系列文章&#xff0c;主要介绍CANOpen的学习知识&#xff0c;能够全面掌握CANOpen原理。文章会不定期的更新。 学习基础&#xff1a;CAN通信。 1. CANOpen通信协议1 2. CANOpen对象字的理解 3. CANOpen之CAN-ID、NODE-ID、COB-ID 4. CanOpen报文类型 5. CANO报文---SDO…

python 怎样生成窗体

通过import tkinter导入Tkinter模块&#xff0c;没有这句下面的都不成立了。 wintkinter.Tk()&#xff0c;这句是创建windows的窗口对象&#xff0c;注意后面的Tk&#xff0c;大小写。 win.title("窗口")&#xff0c;这段是设置窗口上的标题。 另外窗口的大小你可以通…

Paddle 打包部署

PaddleOCR 打包部署exe 心酸历程 PaddleOCR部署exe模式PaddleOCR安装到本地(稍后有时间再写)PaddleOCR打包过程异常问题记录&#xff01;&#xff01;&#xff01;&#xff01;No such file or directory: D:\\py_project\\paddleOCR\\dist\\paddleOCR\\_internal\\paddleocr\\…

JVM:垃圾回收器

文章目录 一、介绍二、年轻代-Serial垃圾回收器三、老年代-SerialOld垃圾回收器四、年轻代-ParNew垃圾回收器五、老年代-CMS&#xff08;Concurrent Mark Sweep&#xff09;垃圾回收器六、年轻代-Parllel Scavenge垃圾回收器七、Parallel Old垃圾回收器八、G1垃圾回收器 一、介…

《Python数据科学之五:模型评估与调优深入解析》

《Python数据科学之五&#xff1a;模型评估与调优深入解析》 在数据科学项目中&#xff0c;精确的模型评估和细致的调优过程是确保模型质量、提高预测准确性的关键步骤。本文将详细探讨如何利用 Python 及其强大的库进行模型评估和调优&#xff0c;确保您的模型能够达到最佳性能…

防火墙之NAT,智能选路篇

什么是NAT? 网络地址转换 1.静态NAT&#xff08;static NAT&#xff09;&#xff08;静态一对一映射&#xff09;&#xff1a;设置起来最为简单&#xff0c;内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。多用于服务器场景。 2.动态NAT&#xff08;pool…