STM32多功能交通灯系统:从原理到实现

news2024/11/18 19:37:48

一、功能说明

本交通灯系统采用先进的stm32f103c8t6微处理器为核心控制单元。系统设置东南西北四个方向各配置两位数码管,用以精准展示5至99秒的时间范围,并且允许用户根据实际需求进行灵活调整。

在信号灯配置方面,每个方向均配备左转、直行、黄灯和红灯共计四个灯,以确保交通信号的有效传递。同时,南北方向和东西方向均安装红外对管装置,分别用于实时监测车流量,为交通管理提供重要数据支持。

此外,本系统还设置紧急按钮功能。一旦触发紧急按钮,系统将立即响应,将行车方向的所有信号灯切换为红灯状态,同时人行道方向信号灯全部转为绿灯状态,以确保紧急情况下的交通安全。紧急模式可通过再次按下紧急按钮解除。

在时间调整方面,本系统具备智能化管理能力,能够根据实时监测到的车流量数据,进行动态调整,以实现交通流的高效管理和优化。

综上所述,本交通灯系统通过严谨、稳重的设计,以及理性的管理策略,为提升道路交通安全性与通行效率提供了有力保障。

二、硬件设计

2.1 原理框图

2.2 各功能框图说明

2.2.1 MCU最小系统

1、该MCU采用了ST的STM32F103C8T6 LQFP48封装,以下是其主要特点:

核心:采用ARM® Cortex®-M3 32位RISC核心,最高频率可达72MHz。

存储器:提供64K字节的Flash存储器和20K字节的SRAM。

电源管理:支持2.0至3.6V的应用供电和I/Os,具有POR、PDR和可编程电压检测器(PVD)。

低功耗模式:包括睡眠、停止和待机模式,适合设计低功耗应用。

丰富的外设:提供两个12位ADC,三个通用16位定时器加一个PWM定时器,以及标准和高级通信接口:最多两个I2C和SPIs,三个USARTs,一个USB和一个CAN。

2、在单片机每个电源输入部分增加一个100nF的旁路电容,其主要功能包括:

a) 滤除电源上的高频噪声。

b) 储能,当负载需要瞬时电流时,电容率先为其提供电流,减小电源产生的波动。

c) 给高频信号提供最近的低阻抗回流路径,减少对其他芯片电源的干扰。

3、BOOT0和BOOT1的作用:

这两个引脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序。

用户可以通过设置BOOT1和BOOT0引脚的状态来选择在复位后的启动模式。

三种启动模式:

Flash memory启动方式(BOOT0 = 0):默认情况下,芯片从内置Flash启动。这是最常用的模式,我们通常使用JTAG或SWD模式下载程序到Flash中,重启后直接从Flash启动。

System memory启动方式(BOOT0 = 1,BOOT1 = 0):从系统存储器启动,这种模式的功能由厂家设置。系统存储器是芯片内部的特定区域,出厂时预置了一个BootLoader,用于串口下载程序到Flash中。这种模式用得较少。

SRAM启动方式(BOOT0 = 1,BOOT1 = 1):从内置SRAM启动,用于程序调试。在这种模式下,代码存储在SRAM中,适用于快速的程序调试。

4、晶振电路

晶体采用8MHz,并联22pf电容,电容与晶振一起形成一个振荡回路,其值需要与晶振的指定负载电容相匹配,以确保晶振在正确的频率下稳定工作。

1M电阻的作用

提供启动振荡:1MΩ电阻有助于晶体振荡器在上电时能够迅速启动振荡。它通过提供一个初始的反馈路径来实现这一点,尤其是在环境温度较低时,晶体振荡器可能更难启动。

增加负性阻抗:并联的1MΩ电阻可以增加电路中的负性阻抗(-R),这有助于提高电路的增益。在没有足够增益的条件下,晶体振荡器可能不会启动。

抑制噪声:这个电阻还可以起到抑制共模噪声的作用,提高系统的抗干扰能力。它有助于减少由于电源线或其他干扰源引入的噪声,从而使晶体振荡器的输出更加稳定。

减少谐波振荡:1MΩ电阻有助于消除晶体振荡器件的谐波振荡,使晶体的输出信号更加纯净和稳定。

5、复位电路

当系统上电时,电容会从0V开始充电,这会导致复位引脚短暂地处于低电平状态,从而触发复位。电容充电后,复位引脚电平逐渐上升到高电平,结束复位过程,允许微控制器开始正常工作。

2.2.2 电源电路 

 电源电路采用LDO AMS1117-3.3将+5V直流电转+3.3V直流电,或者可以通过外部适配器直接提供5V直流电。该电源模块具有低纹波噪声、过载保护、短路保护以及过热保护等功能,以确保系统的稳定性和可靠性。电路图描述如下:

USB1 - USB +5V供电接口

SW1 - 电源开关

D1 - 通过利用该器件的非线性特性,将过电压钳制到一个较低的电压值,实现对后级电路的保护。

U1 - LDO,将+5V转为+3.3V

C1/C2/C3/C4 - 主要用于滤除由电源输出的直流电压中所含的杂波和噪声,并将其平滑处理为一个稳定的直流电压输出

R1 - 限流电阻

LED1 - 电源指示灯

2.2.3 按键电路

按键电路采用点触按键,当用户按下按键时,电路会检测到按键的接触,并产生低电平信号,从而触发相应的操作。电路图描述如下:

SW2/SW3/SW4/SW5 - 点触按键,点触按键的工作原理:按钮与触点机械作用,按下按钮,弹簧收缩,触点接触导电条,电路接通;松开按钮,弹簧恢复原状,触点离开导电条,电路断开。 

2.2.4 红外对管检测电路 

红外发射二极管(LED)不断发射红外光束,红外检测二极管(PD)接收来自LED的红外光束,当LED发出的红外光束命中目标物体时,部分红外光束会被物体反射回给PD。不同的反射强度输出的电压大小不同。

LM339 是一个内部集成了四路比较器的集成电路。比较器有两个输入端和一个输出端。其中,一个输入端称为同输入端(用“+”号表示),另一个称为反相输入端(用“-”表示)。当“+”端电压高于“-”端电压时,输出正电源电压;反之,输出负电源电压。

单片机通过监测OUT1和OUT2输出的电平信号,以精确判断是否有车辆通行。在车辆经过时,红外光线被有效反射,导致OUT输出低电平状态。此外,红外检测的灵敏度可经由调整R29和R30之间的分压比例来进行精确控制。

2.2.5 交通灯电路 

 交通灯电路采用普通的5mm发光二极管加上限流电阻组成。

2.2.6 OLED显示电路

采用0.96寸OLED显示屏以展示交通灯车流量信息,同时,在设置交通灯时间的过程中,也运用OLED实现人机交互功能。

2.2.7 数码管显示电路

数码管的驱动方式采用了GN1640T驱动芯片,而东南西北四个方向则均选用了0.36英寸共阴双八红色数码管,以实现倒计时时间的精准显示。

 三、软件设计

在主函数中,首先进行外设的初始化操作。随后,在while循环中,app_handle()函数负责处理交通灯和车流量的相关工作。同时,key_handle()函数则专注于处理与按键相关的操作。另外,oled_handle()函数则负责处理人机界面的交互功能。

 3.1 app_handle()

app_handle()函数进行交通灯信号的处理和数码管的显示,交通信号灯一个循环结束后会进行车流量的比较计算,然后重新更新东西和南北的交通灯通行时间。

traffic_light_handle()主要对交通灯的状态进行处理。

void traffic_light_handle(void)
{
	switch(step)
	{
		case 0: //东西直行
			EW_STRAIGHT_RED_LED      	= LOW;	//东西直行红灯
			EW_STRAIGHT_GREEN_LED   	= HIGH;	//东西直行绿灯
			EW_STRAIGHT_YELLOW_LED   	= LOW;	//东西直行黄灯
			EW_LEFT_GREEN_LED			= LOW;	//东西左转绿灯
			EW_SIDEWALK_GREEN_LED      	= LOW;	//东西人行道绿灯
			EW_SIDEWALK_RED_LED      	= HIGH;	//东西人行道红灯
		
			NS_STRAIGHT_RED_LED      	= HIGH;	//南北直行红灯
			NS_STRAIGHT_GREEN_LED   	= LOW;	//南北直行绿灯
			NS_STRAIGHT_YELLOW_LED   	= LOW;	//南北直行黄灯
			NS_LEFT_GREEN_LED			= LOW;	//南北左转绿灯
			NS_SIDEWALK_GREEN_LED      	= HIGH;	//南北人行道绿灯
			NS_SIDEWALK_RED_LED      	= LOW;	//南北人行道红灯
		break;
		case 1://东西黄灯 
			EW_STRAIGHT_RED_LED      	= LOW;	//东西直行红灯
			EW_STRAIGHT_GREEN_LED   	= LOW;	//东西直行绿灯
			EW_STRAIGHT_YELLOW_LED   	= HIGH;	//东西直行黄灯
			EW_LEFT_GREEN_LED			= LOW;	//东西左转绿灯
			EW_SIDEWALK_GREEN_LED      	= LOW;	//东西人行道绿灯
			EW_SIDEWALK_RED_LED      	= HIGH;	//东西人行道红灯
		
			NS_STRAIGHT_RED_LED      	= HIGH;	//南北直行红灯
			NS_STRAIGHT_GREEN_LED   	= LOW;	//南北直行绿灯
			NS_STRAIGHT_YELLOW_LED   	= LOW;	//南北直行黄灯
			NS_LEFT_GREEN_LED			= LOW;	//南北左转绿灯
			NS_SIDEWALK_GREEN_LED      	= HIGH;	//南北人行道绿灯
			NS_SIDEWALK_RED_LED      	= LOW;	//南北人行道红灯	
		break;
		case 2://东西左转 
			EW_STRAIGHT_RED_LED      	= LOW;	//东西直行红灯
			EW_STRAIGHT_GREEN_LED   	= LOW;	//东西直行绿灯
			EW_STRAIGHT_YELLOW_LED   	= LOW;	//东西直行黄灯
			EW_LEFT_GREEN_LED			= HIGH;	//东西左转绿灯
			EW_SIDEWALK_GREEN_LED      	= LOW;	//东西人行道绿灯
			EW_SIDEWALK_RED_LED      	= HIGH;	//东西人行道红灯
		
			NS_STRAIGHT_RED_LED      	= HIGH;	//南北直行红灯
			NS_STRAIGHT_GREEN_LED   	= LOW;	//南北直行绿灯
			NS_STRAIGHT_YELLOW_LED   	= LOW;	//南北直行黄灯
			NS_LEFT_GREEN_LED			= LOW;	//南北左转绿灯
			NS_SIDEWALK_GREEN_LED      	= HIGH;	//南北人行道绿灯
			NS_SIDEWALK_RED_LED      	= LOW;	//南北人行道红灯	
		break;
		case 3://南北直行
			EW_STRAIGHT_RED_LED      	= HIGH;	//东西直行红灯
			EW_STRAIGHT_GREEN_LED   	= LOW;	//东西直行绿灯
			EW_STRAIGHT_YELLOW_LED   	= LOW;	//东西直行黄灯
			EW_LEFT_GREEN_LED			= LOW;	//东西左转绿灯
			EW_SIDEWALK_GREEN_LED      	= HIGH;	//东西人行道绿灯
			EW_SIDEWALK_RED_LED      	= LOW;	//东西人行道红灯
		
			NS_STRAIGHT_RED_LED      	= LOW;	//南北直行红灯
			NS_STRAIGHT_GREEN_LED   	= HIGH;	//南北直行绿灯
			NS_STRAIGHT_YELLOW_LED   	= LOW;	//南北直行黄灯
			NS_LEFT_GREEN_LED			= LOW;	//南北左转绿灯
			NS_SIDEWALK_GREEN_LED      	= LOW;	//南北人行道绿灯
			NS_SIDEWALK_RED_LED      	= HIGH;	//南北人行道红灯
		break;
		case 4://南北黄灯
			EW_STRAIGHT_RED_LED      	= HIGH;	//东西直行红灯
			EW_STRAIGHT_GREEN_LED   	= LOW;	//东西直行绿灯
			EW_STRAIGHT_YELLOW_LED   	= LOW;	//东西直行黄灯
			EW_LEFT_GREEN_LED			= LOW;	//东西左转绿灯
			EW_SIDEWALK_GREEN_LED      	= HIGH;	//东西人行道绿灯
			EW_SIDEWALK_RED_LED      	= LOW;	//东西人行道红灯
		
			NS_STRAIGHT_RED_LED      	= LOW;	//南北直行红灯
			NS_STRAIGHT_GREEN_LED   	= LOW;	//南北直行绿灯
			NS_STRAIGHT_YELLOW_LED   	= HIGH;	//南北直行黄灯
			NS_LEFT_GREEN_LED			= LOW;	//南北左转绿灯
			NS_SIDEWALK_GREEN_LED      	= LOW;	//南北人行道绿灯
			NS_SIDEWALK_RED_LED      	= HIGH;	//南北人行道红灯
		break;
		case 5://南北左转
			EW_STRAIGHT_RED_LED      	= HIGH;	//东西直行红灯
			EW_STRAIGHT_GREEN_LED   	= LOW;	//东西直行绿灯
			EW_STRAIGHT_YELLOW_LED   	= LOW;	//东西直行黄灯
			EW_LEFT_GREEN_LED			= LOW;	//东西左转绿灯
			EW_SIDEWALK_GREEN_LED      	= HIGH;	//东西人行道绿灯
			EW_SIDEWALK_RED_LED      	= LOW;	//东西人行道红灯
		
			NS_STRAIGHT_RED_LED      	= LOW;	//南北直行红灯
			NS_STRAIGHT_GREEN_LED   	= LOW;	//南北直行绿灯
			NS_STRAIGHT_YELLOW_LED   	= LOW;	//南北直行黄灯
			NS_LEFT_GREEN_LED			= HIGH;	//南北左转绿灯
			NS_SIDEWALK_GREEN_LED      	= LOW;	//南北人行道绿灯
			NS_SIDEWALK_RED_LED      	= HIGH;	//南北人行道红灯
		break;
		default: break;
	}			
}

3.2 key_handle() 

key_handle() 主要对交通灯通行时间进行调整。

void key_handle(void)
{
	if(flag_get(&key_flag,KEY4_PRESS_FLAG))
	{
		flag_clr(&key_flag,KEY4_PRESS_FLAG);
		set_num++;
		if(set_num > 2) set_num = 1;
		TIM_Cmd(TIM3, DISABLE);  //失能TIM3
		if(set_num == 1)
		{
			inverse_oled_show_string(0,0,"SET EW:",8);
			oled_show_num(80,0,ew_time,2,8);
		}
		else
		{
			oled_show_string(0,0,"SET EW:",8);
			oled_show_num(80,0,ew_time,2,8);
		}
		
		if(set_num == 2)
		{
			inverse_oled_show_string(1,2,"SET NS:",8);
			oled_show_num(80,2,ns_time,2,8);
		}
		else
		{
			oled_show_string(1,2,"SET NS:",8);
			oled_show_num(80,2,ns_time,2,8);
		}		
	}	
	else if(flag_get(&key_flag,KEY5_PRESS_FLAG))
	{
		flag_clr(&key_flag,KEY5_PRESS_FLAG);
		if(set_num == 1) 
		{
			if(ew_time < MAX_TIME) ew_time++;
		}
		else if(set_num == 2) 
		{
			if(ns_time < MAX_TIME) ns_time++;
		}
		oled_show_num(80,0,ew_time,2,8);
		oled_show_num(80,2,ns_time,2,8);
	}		
	else if(flag_get(&key_flag,KEY3_PRESS_FLAG))
	{
		flag_clr(&key_flag,KEY3_PRESS_FLAG);
		if(set_num == 1) 
		{
			if(ew_time > MIN_TIME) ew_time--;
		}
		else if(set_num == 2) 
		{
			if(ns_time > MIN_TIME) ns_time--;
		}
		oled_show_num(80,0,ew_time,2,8);
		oled_show_num(80,2,ns_time,2,8);
	}		
	else if(flag_get(&key_flag,KEY2_PRESS_FLAG))
	{
		flag_clr(&key_flag,KEY2_PRESS_FLAG);
		set_num = 0;
		step = 0;
		current_ew_time = ew_time;
		current_ns_time = ew_time + STRAIGHT_YELLOW_TIME_NUM + LEFT_GREEN_TIME_NUM;;
		oled_clear();
		TIM_Cmd(TIM3, ENABLE);  //使能TIM3
	}	
	
	
	if(flag_get(&key_flag,KEY1_PRESS_FLAG))
	{
		flag_clr(&key_flag,KEY1_PRESS_FLAG);
		
		if(stop_flag)
		{
			stop_flag = 0;
			TIM_Cmd(TIM3, ENABLE);  //失能TIM3
		}
		else
		{
			stop_flag = 1;
			EW_STRAIGHT_RED_LED      	= HIGH;	//东西直行红灯
			EW_STRAIGHT_GREEN_LED   	= LOW;	//东西直行绿灯
			EW_STRAIGHT_YELLOW_LED   	= LOW;	//东西直行黄灯
			EW_LEFT_GREEN_LED			= LOW;	//东西左转绿灯
			EW_SIDEWALK_GREEN_LED      	= LOW;	//东西人行道绿灯
			EW_SIDEWALK_RED_LED      	= HIGH;	//东西人行道红灯
		
			NS_STRAIGHT_RED_LED      	= HIGH;	//南北直行红灯
			NS_STRAIGHT_GREEN_LED   	= LOW;	//南北直行绿灯
			NS_STRAIGHT_YELLOW_LED   	= LOW;	//南北直行黄灯
			NS_LEFT_GREEN_LED			= LOW;	//南北左转绿灯
			NS_SIDEWALK_GREEN_LED      	= LOW;	//南北人行道绿灯
			NS_SIDEWALK_RED_LED      	= HIGH;	//南北人行道红灯
			TIM_Cmd(TIM3, DISABLE);  //失能TIM3
		}
	}	
}

 3.3 oled_handle() 

OLED主要显示车流量信息和设置交通灯通行时间时进行人机信息交互。

四、实物演示

交通灯通行时间演示

交通灯通行时间演示

车流量检测演示

车流量检测演示

倒计时时间设置演示

倒计时时间设置演示

五、技术交流

如果您有更好的建议或者在阅读过程中遇到任何问题或疑虑,欢迎加我QQ ,一起探讨技术问题,我的QQ号是986571840,加的时候请注明CSDN。

感谢各位用户点赞、分享、在看,这些行为让知识得以更加广泛地传播,从而让更多人受益。

请在转载作品时注明出处,严禁抄袭行为。

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

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

相关文章

在进行JD(京东)电商API大数据采集,针对商品详情数据、SKU数据以及价格分析时,关键是数据的准确性、完整性和分析的深度

一、项目背景 网上购物已经成为大众生活的重要组成部分。人们在电商平台上浏览商品并购物&#xff0c;产生了海量的用户行为数据&#xff0c;用户对商品的评论数据对商家具有重要的意义。利用好这些碎片化、非结构化的数据&#xff0c;将有利于企业在电商平台上的持续发展&…

已成功见刊检索的国际学术会议论文海报展示(2)

【先投稿先送审】第四届计算机、物联网与控制工程国际学术会议&#xff08;CITCE 2024) 大会官网&#xff1a;www.citce.org 时间地点&#xff1a;2024年11月1-3日&#xff0c;中国-武汉 收录检索&#xff1a;EI Compendex&#xff0c;Scopus 主办单位&#xff1a;四川师范…

独立农作物区域-第13届蓝桥杯省赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第86讲。 独立农作物区域&a…

食品企业仓储式批发零售一体化解决方案

食品企业需要有效应对日益复杂的市场挑战和消费者需求的快速变化的挑战并提升市场竞争力&#xff0c;仓储式类的批发零售一体化需求应运而生。这一全新的商业模式不仅整合了传统的批发和零售模式&#xff0c;还优化了供应链管理和客户体验&#xff0c;成为食品行业发展的新引擎…

docker安装Jumpserver

docker安装Jumpserver 简介 JumpServer 是广受欢迎的开源堡垒机&#xff0c;是符合 4A 规范的专业运维安全审计系统。 JumpServer 堡垒机帮助企业以更安全的方式管控和登录各种类型的资产&#xff0c;包括&#xff1a; SSH: Linux / Unix / 网络设备 等&#xff1b; Windows:…

中科数安 |-透明加密软件_无感透明加密 - 源头有保障

中科数安的透明加密软件是一款专为保护企业数据安全而设计的高级产品&#xff0c;它采用了无感透明加密技术&#xff0c;确保源头数据的安全可靠。 ——www.weaem.com 以下是该软件的主要特点和功能概述&#xff1a; 无感透明加密&#xff1a; 中科数安的透明加密软件能够在用…

分类预测 | Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测

分类预测 | Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测 目录 分类预测 | Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测&#xff0c;…

Spring Boot集成Minio插件快速入门

1 Minio介绍 MinIO 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口&#xff0c;非常适合于存储大容量非结构化的数据&#xff0c;例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等&#xff0c;而一个对象文件可以是任意大小&…

【机器学习300问】125、什么是双向循环神经网络(BRNN)?什么是深度循环神经网络(DRNN)?

一、双向循环神经网络 &#xff08;1&#xff09;诞生背景 双向循环神经网络&#xff08;Bidirectional Recurrenct Neural Network, BRNN&#xff09;是在深度学习领域发展起来的一种特殊类型的循环神经网络&#xff08;RNN&#xff09;&#xff0c;它诞生的背景是为了解决传…

抽卡机小程序:设计与开发全攻略

在移动互联网时代&#xff0c;小程序以其轻便、易用、无需安装的特点&#xff0c;迅速成为用户日常使用的重要工具。其中&#xff0c;抽卡机小程序因其独特的娱乐性和互动性&#xff0c;受到广大用户的喜爱。本文将为大家详细介绍抽卡机小程序的设计与开发全攻略。 一、需求分析…

电子竞赛5——作息时间控制器

一 . 题目要求 用单片机制作作息时间控制器&#xff1b;用四位数码管显示实时时钟&#xff08;时、分&#xff0c;24小时制、12小时制&#xff09;&#xff0c;有秒闪&#xff0c;小时十位有零消隐&#xff1b;可用数字键或、-键校时&#xff08;可快速、-&#xff09;被校位&…

通过OOS定时升级EIP实例临时带宽

目录 功能背景 关键特性 应用场景 使用限制 操作步骤 附录 执行流程图 模板 功能背景 随着业务的不断发展和互联网应用场景的多样化&#xff0c;企业或个人用户在特定时间段内面临网络流量剧增的挑战变得尤为常见。这些流量高峰&#xff0c;如大规模促销活动、热门直播…

[递归与栈]The Sierpinski Fractal

描述 Consider a regular triangular area, divide it into four equal triangles of half height and remove the one in the middle. Apply the same operation recursively to each of the three remaining triangles. If we repeated this procedure infinite times, wed …

我劝你别惹“女”项目经理

她来了她来了&#xff0c;她带着项目进度走来了&#xff01;&#xff01;&#xff01; 在职场的江湖里&#xff0c;流传着一个传说&#xff0c;那便是“女”项目经理的神话。她们&#xff0c;是团队中的“铁娘子”&#xff0c;是项目里的“指挥官”&#xff0c;更是无数人心中的…

商城小程序:颠覆传统电商,打造全新商业生态

在数字化浪潮的推动下&#xff0c;网购行业呈现多元化繁荣发展态势&#xff0c;出现了琳琅满目的商品应用小程序&#xff0c;但市面上的商城小程序基本属于通用型&#xff0c;无论是商城界面展示和基本功能&#xff0c;都不能满足个性化和商品推广需求&#xff0c;阻碍了商品的…

故障记录---docker僵死

故障现象&#xff1a; docker进程僵死&#xff0c;docker命令无法使用 处理过程&#xff1a; 查看docker进程状态&#xff0c;显示句柄数过多&#xff0c;于是重启了docker [rootdata02 opt]# systemctl status docker ● docker.service - Docker Application Container Eng…

这13个常用电路基础公式,每一位电子工程师都要牢记

计算电阻电路中电流、电压、电阻和功率之间的关系。 欧姆定律解释了电压、电流和电阻之间的关系&#xff0c;即通过导体两点间的电流与这两点间的电势差成正比。说明两点间的电压差、流经该两点的电流和该电流路径电阻之间关系的定律。该定律的数学表达式为V IR&#xff0c;其中…

Nuxt3 实战 (十):使用 Supabase 实现 RESTful 风格 API 接口

前言 本篇文章我们来使用 Supabase 实现 RESTful 风格的 API 接口&#xff0c;以此来实现网站分类和子站点的 CURD 功能。 表设计 这里需要用到两张表&#xff1a; ds_categorys&#xff1a;存储网站分类 列名类型备注iduuid主键&#xff0c;分类 idnametext分类名称desct…

重学java 76.JDK新特性 ② 函数式接口

Looking to the future is the order of the day, no worrying about old news —— 24.6.19 一、函数式接口 1.定义 有且只有一个抽象方法的接口 2.检测 FunctionalInterface 3.示例 FunctionalInterface public interface USB {void open(String s); }public class Demo3…

【碳排放控排1006】碳排放控排企业名单数据集,探索绿色生产!

今天给大家分享的是国内顶级期刊2023发表论文《碳排放规制、企业减排激励与全要素生产率——基于中国碳排放权交易机制的准自然实验》中使用到的重要数据集——碳排放控排企业名单&#xff0c;该论文从企业生产效率视角对论文进行研究&#xff0c;发现碳排放权交易机制显著提升…