当前位置: 首页 > news >正文

GPIO输出控制之LED闪烁、LED流水灯以及蜂鸣器应用案例

系列文章目录

STM32之GPIO(General Purpose Input/Output,通用型输入输出)


文章目录

  • 系列文章目录
  • 前言
  • 一、LED和蜂鸣器简介
    • 1.1 LED
    • 1.2 蜂鸣器
    • 1.3 面包板
  • 二、LED硬件电路
    • 2.1 低电平驱动电路
    • 2.2 高电平驱动电路
  • 三、蜂鸣器硬件电路
    • 3.1 PNP型三极管驱动电路
    • 3.2 NPN型三极管驱动电路
  • 四、GPIO输出控制案例
    • 4.1 LED闪烁
      • 4.1.1 电路接线图
      • 4.1.2 应用案例代码
      • 4.1.3 应用案例分析
    • 4.2 LED流水灯
      • 4.2.1 电路接线图
      • 4.2.2 应用案例代码
      • 4.2.3 应用案例分析
    • 4.3 蜂鸣器
      • 4.3.1 电路接线图
      • 4.3.2 应用案例代码
      • 4.3.3 应用案例分析


前言

提示:本文主要用作在学习江协科大STM32入门教程后做的归纳总结笔记,旨在学习记录,如有侵权请联系作者

本文主要探讨stm32的GPIO输出控制模式,最后通过几个简单的应用案例(LED闪烁、LED流水灯以及蜂鸣器)实现了GPIO的输出控制功能。


一、LED和蜂鸣器简介

1.1 LED

LED是一种发光二极管,它正向通电点亮,反向通电不亮 。LED电路符号如下,左边是正级,右边是负极。
在这里插入图片描述

如下为LED的实物图,LED内部较小的是正极,较大的是负极。

在这里插入图片描述

1.2 蜂鸣器

蜂鸣器分有源蜂鸣器、无源蜂鸣器两种。

有源蜂鸣器: 内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定。
无源蜂鸣器: 内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音。

如上左图所示就是有源蜂鸣器的内部电路图,这里用了一个PNP型的三极管开关电路进行驱动,将VCC和GND分别接上正负极的供电。如果引脚2接低电平,蜂鸣器就会响。反之,接高电平,蜂鸣器就关闭。

1.3 面包板

简单讲一下面包板,如下所示分别为面包板的正反面以及内部金属爪的示例图。

面包板正面如下:

在这里插入图片描述

面包板背面如下:

在这里插入图片描述

金属爪示意图如下:

在这里插入图片描述

对于面包板,我们只需要知道上面两排以及下面两排打横是连通的,中间竖着的是连通的即可。至于内部就是上面看到的金属爪了,当我们插入一个电子元器件的时候就会夹住从而接入电路了。

二、LED硬件电路

使用stm32的GPIO口驱动LED电路有两种方式,分别是低电平驱动以及高电平驱动。

这里的限流电阻一般都是要接的,一方面它可以防止LED因为电流过大而烧毁,另一方面它可以调整LED的亮度,如果你觉得LED太亮可以适当的增大限流电阻的阻值。

要选择哪一种电平驱动方式就得看IO口高低电平的驱动能力如何了。在前面GPIO的章节里有讲到,在GPIO的推挽输出模式下,高低电平均有较强的驱动能力,所以两种方式都可以。在单片机的电路里,一般倾向使用低电平驱动的方式。

2.1 低电平驱动电路

在这里插入图片描述
上图所示为低电平驱动电路结构图,LED正极接3.3v,负极通过一个限流电阻接到PA0上。当PA0输出低电平时,LED两端就会产生电压差,就会形成正向导通的电流,这样LED就会点亮。当PA0输出高电平时,因为LED两端都是3.3v的电压,不会形成电流,所以高电平LED就会熄灭。这就是低电平驱动电路啦。

2.2 高电平驱动电路

在这里插入图片描述
上图所示为高电平驱动电路结构图,LED负极接到GND,正极通过一个限流电阻接到PA0上。当PA0输出高电平时,LED两端就会产生电压差,就会形成正向导通的电流,这样LED就会点亮。当PA0输出低电平时,因为LED两端都是GND,不会形成电流,所以低电平LED就会熄灭。这就是高电平驱动电路啦。

三、蜂鸣器硬件电路

这里使用了三极管开关的驱动方案。三极管开关是最简单的驱动电路了,对于功率稍微大一点的 ,直接用IO口驱动会导致STM32负担过重,这时可以用一个三极管驱动电路来完成驱动任务。

需要注意的是,PNP型的三极管最好接在上边,NPN型的三极管最好接到下边,这是因为三极管的通断是需要在发射极和基极产生一定的开启电压的,如果将负载接在发射极这边,可能会导致三极管不能开启。

3.1 PNP型三极管驱动电路

在这里插入图片描述

上图所示为PNP型三极管的驱动电路,三极管的左边是基极(b),带箭头的是发射极(e),剩下的是集电极c。当基极(b)给低电平时,三极管就会导通,再通过3.3V和GND就可以给蜂鸣器提供驱动电流了。当基极(b)给高电平时,三极管截止,蜂鸣器没有电流。

3.2 NPN型三极管驱动电路

在这里插入图片描述
上图所示为NPN型三极管的驱动电路,同样,左边是基极(b),带箭头的是发射极(b),剩下的是集电极c。它的驱动逻辑和上面的是相反的,当基极(b)给高电平时,三极管导通。当基极(b)给低电平时,三极管断开。

有关三极管的NPN型与PNP型的更加详细介绍可以参考一下我的另一篇文章:三极管(NPN型、PNP型)工作原理

四、GPIO输出控制案例

4.1 LED闪烁

本案例实现了一个通过控制GPIO的PA0引脚输出高低电平实现LED闪烁的功能。

4.1.1 电路接线图

在这里插入图片描述

4.1.2 应用案例代码

延时头文件Delay.h:

#ifndef __DELAY_H
#define __DELAY_Hvoid Delay_us(uint32_t us);
void Delay_ms(uint32_t ms);
void Delay_s(uint32_t s);#endif

延时实现文件Delay.c:

#include "stm32f10x.h"/*** @brief  微秒级延时* @param  xus 延时时长,范围:0~233015* @retval 无*/
void Delay_us(uint32_t xus)
{SysTick->LOAD = 72 * xus;				//设置定时器重装值SysTick->VAL = 0x00;					//清空当前计数值SysTick->CTRL = 0x00000005;				//设置时钟源为HCLK,启动定时器while(!(SysTick->CTRL & 0x00010000));	//等待计数到0SysTick->CTRL = 0x00000004;				//关闭定时器
}/*** @brief  毫秒级延时* @param  xms 延时时长,范围:0~4294967295* @retval 无*/
void Delay_ms(uint32_t xms)
{while(xms--){Delay_us(1000);}
}/*** @brief  秒级延时* @param  xs 延时时长,范围:0~4294967295* @retval 无*/
void Delay_s(uint32_t xs)
{while(xs--){Delay_ms(1000);}
} 

主程序文件main.c:

#include "stm32f10x.h"                  // Device header
#include "Delay.h"int main(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);while (1){GPIO_ResetBits(GPIOA, GPIO_Pin_0);Delay_ms(500);GPIO_SetBits(GPIOA, GPIO_Pin_0);Delay_ms(500);GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET);Delay_ms(500);GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET);Delay_ms(500);GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)0);Delay_ms(500);GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)1);Delay_ms(500);}
}

4.1.3 应用案例分析

以上代码实现了通过GPIOA的PA0引脚控制一个LED灯闪烁的功能。主要使用了STM32标准外设库函数来配置GPIO端口,以下是对代码的详细分析:

1. 配置时钟:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); 使能GPIOA端口的时钟。在STM32中,任何外设在使用前都需要先使能其时钟。

2. GPIO初始化:

  1. 定义了一个GPIO_InitTypeDef结构体变量GPIO_InitStructure,并通过它来配置GPIOA的PA0引脚。
  2. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 设置PA0为推挽输出模式。
  3. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; 指定配置的是GPIOA的PA0引脚。
  4. GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz; 设置GPIO的输出速度为50MHz,尽管这个速度对于简单的LED闪烁来说可能过高,但它不会影响LED的功能。
  5. GPIO_Init(GPIOA, &GPIO_InitStructure); 将上述配置应用到GPIOA上。

3. LED闪烁循环:

  1. 程序进入一个无限循环,通过改变PA0引脚的状态来控制LED的亮灭。
  2. GPIO_ResetBits(GPIOA, GPIO_Pin_0); 和 GPIO_SetBits(GPIOA, GPIO_Pin_0); 分别用于将PA0引脚置为低电平(LED熄灭)和高电平(LED点亮)。
  3. GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET); 和 GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET); 是另一种写入单个GPIO引脚的方法,效果与上面的函数相同。
  4. GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)0); 和 GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)1); 使用了枚举类型BitAction来指定引脚状态,这里(BitAction)0和(BitAction)1分别对应Bit_RESET和Bit_SET。
  5. Delay_ms(500);:每次状态改变后,程序都会暂停500毫秒,以实现闪烁效果。

总结: 这段代码通过配置GPIOA的PA0引脚为推挽输出模式,并在一个无限循环中交替地将其置为高电平和低电平,从而控制连接在该引脚上的LED灯闪烁。同时,代码中展示了两种设置GPIO引脚状态的方法。

4.2 LED流水灯

本案例实现了一个简单的LED流水灯功能。

4.2.1 电路接线图

在这里插入图片描述

4.2.2 应用案例代码

主程序文件main.c:

#include "stm32f10x.h"                  // Device header
#include "Delay.h"int main(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);while (1){GPIO_Write(GPIOA, ~0x0001);	//0000 0000 0000 0001Delay_ms(100);GPIO_Write(GPIOA, ~0x0002);	//0000 0000 0000 0010Delay_ms(100);GPIO_Write(GPIOA, ~0x0004);	//0000 0000 0000 0100Delay_ms(100);GPIO_Write(GPIOA, ~0x0008);	//0000 0000 0000 1000Delay_ms(100);GPIO_Write(GPIOA, ~0x0010);	//0000 0000 0001 0000Delay_ms(100);GPIO_Write(GPIOA, ~0x0020);	//0000 0000 0010 0000Delay_ms(100);GPIO_Write(GPIOA, ~0x0040);	//0000 0000 0100 0000Delay_ms(100);GPIO_Write(GPIOA, ~0x0080);	//0000 0000 1000 0000Delay_ms(100);}
}

延迟函数的实现以及头文件已经在上面的案例中贴过了,这里就不再累述了。

4.2.3 应用案例分析

该代码前面部分跟上一个LED闪烁的案例基本一致,其实操作GPIO的套路都是差不多的。首先是使能GPIO外设时钟,然后再初始化进行GPIO端口属性设置,最后就是对GPIO的某个端口进行读写设置。这里就不再累述了。

具体步骤如下

  • 使能GPIOA时钟:确保GPIOA引脚可以被配置和操作。
  • 配置GPIOA所有引脚为推挽输出模式。
  • 主循环中:依次设置GPIOA不同引脚的状态,并通过延时函数实现LED的流水效果。

总结: 这段代码实现了一个简单的LED流水灯效果,通过不断变化GPIOA引脚的状态,依次点亮连接在GPIOA的不同引脚上的LED,并通过延时函数控制LED点亮的时间间隔。

4.3 蜂鸣器

本案例实现了一个蜂鸣器按照一定的频率进行工作的功能。

4.3.1 电路接线图

在这里插入图片描述

4.3.2 应用案例代码

主程序文件main.c:

#include "stm32f10x.h"                  // Device header
#include "Delay.h"int main(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);while (1){GPIO_ResetBits(GPIOB, GPIO_Pin_12);Delay_ms(100);GPIO_SetBits(GPIOB, GPIO_Pin_12);Delay_ms(100);GPIO_ResetBits(GPIOB, GPIO_Pin_12);Delay_ms(100);GPIO_SetBits(GPIOB, GPIO_Pin_12);Delay_ms(700);}
}

延迟函数的实现以及头文件已经在上面的案例中贴过了,这里就不再累述了。

4.3.3 应用案例分析

本案例的实现代码基本思路是跟第一个案例是一致的,只不过是把控制LED变成了控制蜂鸣器的I/O,这里就不再累述了。

相关文章:

GPIO输出控制之LED闪烁、LED流水灯以及蜂鸣器应用案例

系列文章目录 STM32之GPIO(General Purpose Input/Output,通用型输入输出) 文章目录 系列文章目录前言一、LED和蜂鸣器简介1.1 LED1.2 蜂鸣器1.3 面包板 二、LED硬件电路2.1 低电平驱动电路2.2 高电平驱动电路 三、蜂鸣器硬件电路3.1 PNP型三…...

体系结构论文导读(三十四):Design of Reliable DNN Accelerator with Un-reliable ReRAM

文章核心 这篇文章主要讨论了一种在不可靠的ReRAM(阻变存储器)设备上设计可靠的深度神经网络(DNN)加速器的方法。文章提出了两种关键技术来解决ReRAM固有的不可靠性问题:动态定点(DFP)数据表示…...

WebStock会话

其实使用消息队列也可以实现会话&#xff0c;直接前端监听指定的队列&#xff0c;使用rabbitmq的分组还可以实现不同群聊的效果。 1、依赖搭建&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org…...

5_现有网络模型的使用

教程&#xff1a;现有网络模型的使用及修改_哔哩哔哩_bilibili 官方网址&#xff1a;https://pytorch.org/vision/stable/models.html#classification 初识网络模型 pytorch为我们提供了许多已经构造好的网络模型&#xff0c;我们只要将它们加载进来&#xff0c;就可以直接使…...

软件安全测试报告内容和作用简析,软件测试服务供应商推荐

在数字化时代&#xff0c;软件安全问题愈发凸显&#xff0c;安全测试显得尤为重要。软件安全测试报告是对软件系统在安全性方面进行评估和分析后的书面文件。该报告通常包含测试过程、测试发现、漏洞描述、风险评估及改进建议等重要信息。报告的目的是为了帮助开发团队及时发现…...

算法板子:树形DP、树的DFS——树的重心

思想&#xff1a; 代码&#xff1a; #include <iostream> #include <cstring> using namespace std;const int N 1e5 10;// vis标记当前节点是否被访问过; vis[1]true代表编号为1的节点被访问过 bool vis[N]; // h数组为邻接表; h数组上的每个坑位都串了一个单链…...

在C语言中,联合体或共用体(union )是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型。

在C语言中&#xff0c;union 是一种特殊的数据类型&#xff0c;允许在相同的内存位置存储不同的数据类型。这意味着 union 中的所有成员共享同一块内存空间&#xff0c;因此它们之间会相互覆盖。在你给出的 Acceleration_type union 定义中&#xff0c;包含了三种不同类型的成员…...

MS2201以太网收发电路

MS2201 是吉比特以太网收发器电路&#xff0c;可以实现超高速度的 全双工数据传输。它的通信遵从 IEEE 802.3 Gigabit Ethernet 协议 中的 10 比特接口的时序要求协议。 MS2201 支持数据传输速率从 1Gbps 到 1.85Gbps 。 主要特点 ◼ 电源电压&#xff1a; 2.5V 、 3.3V …...

乐乐音乐Kotlin版

简介 乐乐音乐Kotlin版&#xff0c;主要是基于ExoPlayer框架开发的Android音乐播放器&#xff0c;它支持lrc歌词和动感歌词(ksc歌词、krc歌词、trc歌词、zrce歌词和hrc歌词等)、多种格式歌词转换器及制作动感歌词、翻译歌词和音译歌词。 编译环境 Android Studio Jellyfish | …...

C语言——预处理和指针

C语言——预处理和指针 预处理宏宏定义宏的作用域带参的宏 文件包含条件编译 指针指针的概念指针的定义指针变量初始化指针一维整型数组 预处理 编程的流程分为&#xff1a;编辑、编译、运行、调试四个阶段&#xff1b; 预处理属于编译阶段&#xff0c;编译过程又可以分为&…...

iptables防火墙(一)

目录 1、Linux防火墙基础 2、iptables的四表五链结构 2.1 iptables的四表五链结构介绍 2.2 四表五链 2.2.1 四表 2.2.2 五链 2.3 包过滤的匹配流程 2.3.1 规则链之间匹配顺序 2.3.2 规则链内部的处理规则 2.3.3 数据包过滤的匹配流程 3、 编写防火墙规则 3.1 iptabe…...

(leetcode学习)50. Pow(x, n)

实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数&#xff08;即&#xff0c;xn &#xff09;。 示例 1&#xff1a; 输入&#xff1a;x 2.00000, n 10 输出&#xff1a;1024.00000示例 2&#xff1a; 输入&#xff1a;x 2.10000, n 3 输出&#xff1a;9.26100示例 …...

QT 5.12.0 for Windows 安装包 QT静态库 采用源码静态编译生成

qt-5.12.0-static.zip 下载地址(资源整理不易&#xff0c;下载使用需付费&#xff0c;且文件较大&#xff0c;不能接受请勿浪费时间下载): 链接&#xff1a;https://pan.baidu.com/s/1ftfHFG_jGFwVaOAvBVrNFg?pwdtvtp 提取码&#xff1a;tvtp...

【生成式人工智能-三-promote 神奇咒语RL增强式学习RAG】

如何激发模型的能力 提示词 promotCoTRL 增强式学习Reforcement learning提供更多的资料提供一些范例Incontext- learning 任务拆解让模型自己检查错误让模型多次生成答案Tree of Thoughts让模型使用其他工具RAG写程序POT其他工具 让多个模型合作参考 在模型不变的情况下&#…...

C++连接oracle数据库连接字符串

//远程连接&#xff0c;需要安装oracle客户端sprintf(szConnect4, ("Provider OraOLEDB.Oracle.1; Password %s; Persist Security Info True; User ID %s; Data Source \"(DESCRIPTION (ADDRESS_LIST (ADDRESS (PROTOCOL TCP)(HOST %s)(PORT 1521)) )(CONN…...

判断字符串是否接近:深入解析及优化【字符串、哈希表、优化过程】

本文将详细解析解决这个问题的思路&#xff0c;并逐步优化实现方案。 问题描述 给定两个字符串 word1 和 word2&#xff0c;如果通过以下操作可以将 word1 转换为 word2&#xff0c;则认为它们是接近的&#xff1a; 交换任意两个现有字符。将一个现有字符的每次出现转换为另…...

C 和 C++ 中信号处理简单介绍

信号处理是编程中一个重要的主题&#xff0c;特别是在需要处理异步事件和错误情况的系统中。在 C 和 C 语言中&#xff0c;信号处理机制提供了一种优雅的方式来响应特定的系统事件&#xff0c;例如用户中断、异常情况或其他信号。在这里&#xff0c;我将详细介绍 C 和 C 中信号…...

什么是云边协同?

当今信息技术高速发展的时代&#xff0c;"云边协同"&#xff08;Edge Cloud Collaboration&#xff09;已经成为一个备受关注的话题。它涉及到云计算和边缘计算的结合&#xff0c;为数据处理、存储和应用提供了全新的可能性。本文将介绍云边协同的概念、优势以及在不…...

YOLOv5改进 | 主干网络 | 将backbone替换为MobileNetV2【小白必备教程+附完整代码】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录&#xff1a; 《YOLOv5入门 改…...

ARMxy边缘计算网关用于过程控制子系统

在现代工业生产中&#xff0c;过程控制系统的优化对于提高生产效率、保证产品质量、降低能源消耗等方面都具有重要意义。而 ARMxy 工控机作为一种高性能、高可靠性的工业控制设备&#xff0c;正逐渐成为过程控制系统优化的新选择。 ARMxy 工控机采用了先进的 ARM 架构处理器&am…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...