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

STM32 ADC 模数转换器详解:原理、配置与应用

STM32 ADC 模数转换器详解:原理、配置与应用

在嵌入式系统中,模数转换(ADC)是实现传感器信号采集、信号处理等任务的关键环节。STM32 微控制器作为一款功能强大的 32 位微控制器,其内置的 ADC 模块为开发者提供了高效、灵活的模数转换解决方案。本文将深入探讨 STM32 ADC 的工作原理、配置方法以及典型应用场景,帮助读者全面掌握这一关键外设的使用技巧。

一、STM32 ADC 原理概述

STM32 的 ADC(模数转换器)是一个 12 位分辨率的模数转换器,它能够将模拟信号转换为数字信号。ADC 的工作原理基于逐次逼近寄存器(SAR)技术,通过对输入模拟信号进行采样、保持和量化,最终输出对应的数字值。

从功能上看,STM32 ADC 支持多种工作模式,包括单次转换模式和连续转换模式。单次转换模式下,ADC 完成一次转换后自动停止;而连续转换模式则会持续不断地进行模数转换,适用于需要实时监测信号变化的场景。此外,STM32 ADC 还具备多种触发方式,如软件触发、外部事件触发等,可灵活满足不同应用场景的需求。

二、STM32 ADC 硬件架构

STM32 内部集成了多个 ADC 模块,不同系列的 STM32 微控制器在 ADC 的数量和通道数量上有所差异。例如,STM32F1 系列通常配备 1 个或 2 个 ADC 模块,每个 ADC 模块拥有 16 个外部通道(可连接多达 16 个外部模拟信号源)以及 4 个内部通道(用于采集内部参考电压、温度传感器等信号)。

每个 ADC 模块的通道可以配置为不同的采样时间,以适应不同频率的模拟信号输入,确保采样精度。ADC 的输入信号范围通常是 0 到 VDDA(模拟电源电压),超范围的输入信号可能会导致转换结果不准确甚至损坏芯片。

三、STM32 ADC 配置步骤

  1. 开启时钟与 GPIO 配置

    • 首先,需要通过调用 __HAL_RCC_ADC_CLK_ENABLE() 函数开启 ADC 模块的时钟,确保 ADC 能正常工作。
    • 然后,配置 GPIO 引脚为模拟模式(GPIO_MODE_ANALOG),以便将外部模拟信号输入到 ADC 通道。例如,若使用 PA0 引脚作为 ADC 输入通道 0,则开启 GPIOA 时钟,并将 PA0 配置为模拟模式。
  2. ADC 初始化

    • 调用 HAL_ADC_Init() 函数对 ADC 进行初始化。在初始化结构体中,需设置 ADC 的分辨率(如 12 位)、扫描方向(单通道或多通道扫描)、连续转换模式等参数。例如,设置 ADC 分辨率为 12 位,开启连续转换模式,以便持续采集模拟信号。
  3. ADC 通道配置

    • 使用 HAL_ADC_ConfigChannel() 函数配置 ADC 通道。指定通道号(如 ADC_CHANNEL_0)、采样时间(如 ADC_SAMPLETIME_3CYCLES)等参数。采样时间决定了 ADC 对输入信号采样的时间长度,较长的采样时间有助于提高采样精度,但会降低转换速度。
  4. 启动 ADC 转换

    • 根据触发方式的不同,可以选择通过软件触发(HAL_ADC_Start())或外部事件触发(如定时器触发)来启动 ADC 转换。启动转换后,ADC 会按照配置的模式进行模数转换,并将结果存储在相应的数据寄存器中。
  5. 读取 ADC 转换结果

    • 调用 HAL_ADC_GetValue() 函数获取 ADC 转换的结果值,该值为 12 位无符号整数(范围 0 - 4095),对应输入模拟信号的量化值。可以根据需要对转换结果进行进一步处理,如数据滤波、单位换算等。

四、示例代码与解析

#include "stm32f1xx_hal.h"ADC_HandleTypeDef hadc1;void ADC1_Init(void)
{// ADC 时钟配置__HAL_RCC_ADC1_CLK_ENABLE();// GPIO 配置GPIO_InitTypeDef GPIO_InitStruct = {0};__HAL_RCC_GPIOA_CLK_ENABLE();GPIO_InitStruct.Pin = GPIO_PIN_0;GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);// ADC 初始化hadc1.Instance = ADC1;hadc1.Init.ScanConvMode = DISABLE; // 单通道模式hadc1.Init.ContinuousConvMode = ENABLE; // 启用连续转换模式hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; // 软件触发hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; // 数据右对齐hadc1.Init.NbrOfConversion = 1; // 转换次数HAL_ADC_Init(&hadc1);// ADC 通道配置ADC_ChannelConfTypeDef sConfig = {0};sConfig.Channel = ADC_CHANNEL_0; // 通道 0sConfig.Rank = ADC_REGULAR_RANK_1; // 排名sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES; // 采样时间HAL_ADC_ConfigChannel(&hadc1, &sConfig);// 启动 ADC 转换HAL_ADC_Start(&hadc1);
}uint16_t Read_ADC_Value(void)
{// 等待 ADC 转换完成if (HAL_ADC_PollForConversion(&hadc1, HAL_MAX_DELAY) == HAL_OK){return HAL_ADC_GetValue(&hadc1); // 获取转换结果}return 0;
}int main(void)
{HAL_Init();SystemClock_Config();ADC1_Init();while (1){uint16_t adc_value = Read_ADC_Value(); // 读取 ADC 值// 可在此添加对 adc_value 的处理代码}
}

在示例代码中,我们首先配置了 GPIOA 的 PA0 引脚为模拟模式,用于输入模拟信号。然后初始化 ADC1 模块,设置其为单通道模式、连续转换模式,并通过软件触发启动转换。接着配置 ADC 通道 0 的采样时间等参数。最后,在主循环中持续读取 ADC 转换结果,并可对结果进行后续处理。

五、典型应用场景

  1. 传感器信号采集

    • 在温度传感器、压力传感器等模拟信号输出的传感器应用中,STM32 ADC 可实时采集传感器输出的模拟信号,并将其转换为数字信号,便于微控制器进行数据处理和分析。例如,通过 ADC 采集热敏电阻的电压变化,计算出当前环境温度。
  2. 音频信号处理

    • 在音频信号采集与处理领域,ADC 可将麦克风等音频传感器输出的模拟音频信号转换为数字信号,为后续的音频信号滤波、编码等处理提供数据基础。STM32 ADC 的高分辨率和灵活配置特性,能够满足音频信号的高质量采集需求。
  3. 电源监测与电池管理

    • 利用 ADC 监测电源电压、电流等参数,可实现电源状态监测和电池管理系统。例如,通过采集电池电压信号,实时判断电池电量状态,为设备的电源管理提供依据。

六、注意事项与调试技巧

  1. 采样时间选择

    • 根据输入信号的频率和特性,合理选择 ADC 通道的采样时间。对于高频信号,可能需要较长的采样时间以确保采样精度;而对于低频信号,较短的采样时间可提高转换速度。
  2. 参考电压稳定性

    • 确保 ADC 的参考电压(VREF)稳定,这是保证模数转换精度的关键。可使用外部稳压芯片或内部参考电压源为 ADC 提供稳定的参考电压。
  3. 信号完整性

    • 注意模拟信号输入线路的布线,避免线路过长、与其他数字信号线交叉等,以减少干扰,保证模拟信号的完整性。必要时可使用滤波电容等元件对输入信号进行滤波。
  4. 调试工具使用

    • 使用示波器或逻辑分析仪观察 ADC 输入信号的波形和特性,有助于排查信号采集过程中的问题。同时,通过修改 ADC 配置参数,观察转换结果的变化,快速定位配置错误。

掌握 STM32 ADC 的原理、配置与应用,能够为嵌入式系统开发中的模拟信号采集与处理任务提供坚实的技术支持,助力开发者实现更多创新性的项目应用。

相关文章:

STM32 ADC 模数转换器详解:原理、配置与应用

STM32 ADC 模数转换器详解:原理、配置与应用 在嵌入式系统中,模数转换(ADC)是实现传感器信号采集、信号处理等任务的关键环节。STM32 微控制器作为一款功能强大的 32 位微控制器,其内置的 ADC 模块为开发者提供了高效…...

18.Excel数据透视表:第1部分创建数据透视表

一 什么是数据透视表 通过万花筒可以用不同的方式査看里面画面图像,在excel中可以将数据透视表看作是对准数据的万花筒,用不同角度去观察数据,也可以旋转数据,对数据进行重新排列,对大量的数据可以快速的汇总和建立交叉…...

AI 模型训练轻量化技术在军事领域的实战应用与技术解析

AI 模型训练轻量化技术在军事领域的实战应用与技术解析 一、引言 在人工智能与军事领域深度融合的当下,AI 模型训练轻量化技术正成为破解战场资源限制的关键钥匙。通过模型压缩、量化、剪枝等核心技术,轻量化模型在算力受限、通信不稳定的复杂战场环境中…...

科学养生,开启健康生活

在快节奏的现代生活中,健康养生成为人们关注的焦点。科学合理的养生方式,无需依赖传统医学理论,也能有效提升生活质量,为身体注入活力。​ 均衡饮食是养生的基础。每天应保证摄入足够的蛋白质、碳水化合物和脂肪,同时…...

高效跨平台文件传输与管理的工具

软件介绍 这款名为 Coolmuster Mobile Transfer 的工具是一款多平台支持的文件传输工具,能高效地在不同设备间进行文件传输与管理。 适用场景 它适用于多种场景,无论是个人文件整理、家庭成员间资料共享,还是企业场景下的工作文件处理&…...

如何优化 Linux 服务器的磁盘 I/O 性能

# 优化 Linux 服务器磁盘 I/O 性能的全面指南 ## 1. 识别 I/O 瓶颈 首先确定是否存在 I/O 瓶颈以及瓶颈位置: bash # 使用 iostat 查看磁盘 I/O 统计 iostat -x 1 # 使用 iotop 查看进程级 I/O 使用情况 iotop # 使用 vmstat 查看系统整体 I/O 情况 vmstat 1 …...

Python基础学习-Day23

目录 基础概念转换器(transformer)估计器(estimator)管道(pipeline) 实例pipeline 基础概念 pipeline在机器学习领域可以翻译为“管道”,也可以翻译为“流水线”,是机器学习中一个重…...

【Ubuntu】扩充磁盘大小

sudo apt-get install gparted 安装完成后,搜索gparted软件,打开gparted 参考...

数据治理域——日志数据采集设计

摘要 本文主要介绍了Web页面端日志采集的设计。首先阐述了页面浏览日志采集,包括客户端日志采集的实现方式、采集内容及技术亮点。接着介绍了无线客户端端日志采集,包括UserTrack的核心设计、移动端与浏览器端采集差异以及典型应用场景崩溃分析。最后探…...

Dinky 安装部署并配置提交 Flink Yarn 任务

官方文档 https://www.dinky.org.cn/docs/1.1/deploy_guide/normal_deploy 版本 dinky 1.1.0、1.2.3 当前最新发布版本为 1.2.3 ,但是官方文档最新稳定版为 1.1 ,所以先选择 1.1.0,验证通过后,再尝试 1.2.3 ,发现 1…...

杰理-701-手表sdk无法电脑连接经典蓝牙

杰理-701-手表sdk无法电脑连接经典蓝牙 只有手机可以连接经典蓝牙播放音乐,电脑无法连接,需要关闭emitter功能 交流q群:187115320...

Timsort 算法

文章目录 1 基础理解1.1 定义和原理1.2 工作原理 2 算法实现2.1 Python 代码实现2.1.1 代码2.1.2 核心逻辑计算最小运行长度(calc_min_run(n))插入排序(insertion_sort(arr, left, right)) 2.2 Java 代码实现2.3 C 代码实现 3 逻辑…...

Go构建高并发权重抽奖系统:从设计到优化全流程指南

引言:为何需要专业抽奖系统? 在现代互联网应用中,抽奖系统被广泛用于营销活动、用户激励等场景。一个好的抽奖系统需要满足: 公平性:确保概率分布准确高性能:支持高并发抽奖请求安全性:防止作…...

深度学习计算

深度学习的飞速发展离不开强大的计算能力支撑。从张量计算到 GPU 加速,从自动微分到分布式计算,深度学习计算的每一项技术都如同精密仪器中的关键齿轮,推动着模型性能的不断提升。本文深入剖析深度学习计算的核心技术、优化策略以及前沿趋势&…...

【Bluedroid】蓝牙 HID DEVICE 初始化流程源码解析

本文深入剖析Android蓝牙协议栈中HID设备(BT-HD)服务的初始化与启用流程,从接口初始化、服务掩码管理、服务请求路由到属性回调通知,完整展现蓝牙HID服务激活的技术路径。通过代码逻辑梳理,揭示服务启用的核心机制&…...

Kotlin 中的 Unit 类型的作用以及 Java 中 Void 的区别

在 Kotlin 中,Unit 类型和 Java 中的 void 关键字都用于表示“没有返回值”的函数,但它们在设计理念、类型系统和实际使用中有显著的区别。 1 Kotlin 中的 Unit 类型 表示无返回值: 当函数不返回有意义的值时,Kotlin 使用 Unit …...

Gemini 2.5 推动视频理解进入新时代

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

Spark Streaming 内部运行机制详解

核心思想:将实时数据流切割为“微批次”,利用 Spark Core 的批处理能力进行准实时计算。 1. 核心流程拆解 数据接收(Input Data Stream) 输入源:Kafka、Flume、Socket 等实时数据流。 接收器(Receiver&…...

Feign+Resilience4j实现微服务熔断机制:原理与实战

引言:为什么需要熔断器? 在微服务架构中,服务间的依赖调用变得非常普遍。想象一下这样的场景:订单服务依赖支付服务,支付服务又依赖银行网关服务。如果银行网关服务出现故障,故障会向上蔓延,导…...

什么是SparkONYarn模式

1. 什么是 Spark on YARN? Spark on YARN 是 Apache Spark 的一种部署模式,允许 Spark 应用程序在 Hadoop YARN 集群上运行,充分利用 YARN 的资源管理和调度能力。这种模式将 Spark 与 Hadoop 生态深度集成,使企业能够在同一集群…...

鸿蒙北向应用开发: deveco5.0 创建开源鸿蒙项目

本地已经安装deveco5.0 使用5.0创建开源鸿蒙项目 文件->新建->新建项目 直接创建空项目,一路默认 next 直接编译项目 直接连接开源鸿蒙5.0开发板编译会提示 compatibleSdkVersion and releaseType of the app do not match the apiVersion and releaseType on the dev…...

操作系统:内存管理

目录 1、主要目标 2、核心概念和技术 2.1 物理内存与虚拟内存 2.2 内存分页机制 2.3 页面置换算法 3、监控与性能优化 3.1 查看物理内存 3.2 查看虚拟内存 3.3 性能问题 1> 内存不足(OOM) 2> 内存泄漏 3> 内存碎片 3.4 性能优化策…...

腾讯优化DeepSeek的DeepEP通信框架:开启AI大模型训练新时代

事件背景 在人工智能(AI)技术迅猛发展的当下,大规模AI模型训练的需求与日俱增。高效的数据通信成为了提升AI模型训练效率的关键环节。混合专家模型(MoE)作为一种高效的大模型架构,通过动态分配专家网络处理…...

CSP-J普及组第一轮真题单选题专项训练(二)

CSP-J普及组第一轮真题单选题专项训练(二) (共15题,每2分,共30分;每题有且有一个正确选项) 1、一个 32 位整型变量占用()个字节。 A. 32 B. 128 C. 4 D. 8 2、在内存储器中每个存储单元都被赋予一个唯一的序号,称为 A、下标 B、序号 C、地址 D、编号 3、编译器的主要…...

Android加固工具测评:易盾、顶象、360加固哪款更好用?

应用安全已经成为每个开发者和企业关注的核心问题。随着黑客技术的不断升级,单一的安全措施已经无法有效应对各种复杂的攻击威胁。Android加固工具应运而生,成为了提升应用安全的关键利器。这些加固工具通过代码混淆、加密、防篡改等技术手段&#xff0c…...

C++ 字符格式化输出

文章目录 一、简介二、实现代码三、实现效果 一、简介 这里使用std标准库简单实现一个字符格式化输出&#xff0c;方便后续的使用&#xff0c;它有点类似Qt中的QString操作。 二、实现代码 FMTString.hpp #pragma once#include <cmath> #include <cstdio> #include…...

内存中的“BANK”

一、BANK的定义与物理结构 基本概念 BANK&#xff08;存储体&#xff09; 是内存芯片内部的一个逻辑或物理分区&#xff0c;每个BANK由存储单元阵列、地址解码电路和缓冲器组成&#xff0c;用于分块管理内存操作。 作用&#xff1a;通过并行操作减少访问冲突&#xff0c;提升内…...

D-Pointer(Pimpl)设计模式(指向实现的指针)

Qt 的 D-Pointer&#xff08;Pimpl&#xff09;设计模式 1. Pimpl 模式简介 Pimpl&#xff08;Pointer to Implementation&#xff09;是一种设计模式&#xff0c;用于将类的接口与实现分离&#xff0c;从而隐藏实现细节&#xff0c;降低编译依赖&#xff0c;提高代码的可维护…...

XA协议和Tcc

基于 XA 协议的两阶段提交 (2PC)。这是一种分布式事务协议&#xff0c;旨在保证在多个参与者&#xff08;通常是不同的数据库或资源管理器&#xff09;共同参与的事务中&#xff0c;所有参与者要么都提交事务&#xff0c;要么都回滚事务&#xff0c;从而维护数据的一致性。 你…...

我们该如何使用DeepSeek帮我们减负?

在当今信息爆炸的时代&#xff0c;如何快速获取、筛选和分析信息已经成为各行各业的重要能力。而DeepSeek作为一种先进的智能搜索和信息挖掘工具&#xff0c;能够帮助用户快速找到所需的信息&#xff0c;并从海量数据中提取出有用的洞见。在这篇博文中&#xff0c;我们将深入探…...

25.5.13

感觉很久没有写算法题了&#xff0c;先来个滑动队列模板题试试水&#xff0c;就是用双端队列来实现会很方便&#xff0c;拿结构体来记录是第几个数和数的值即可&#xff0c;再定义两个双端队列&#xff0c;一个使他的值单调递增一个使他的值单调递减 使队头元素为最大值或者是最…...

软件测试——面试八股文(入门篇)

今天给大家分享软件测试面试题入门篇&#xff0c;看看大家能答对几题 一、 请你说一说测试用例的边界 参考回答&#xff1a; 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充&#xff0c;这种情况下&#xff…...

脑机接口技术:开启人类与机器融合的新时代

摘要 脑机接口&#xff08;BCI&#xff09;技术作为一项前沿科技&#xff0c;正在逐步打破人类与机器之间的沟通障碍&#xff0c;为医疗、娱乐、教育等多个领域带来前所未有的变革。本文将详细介绍脑机接口技术的基本原理、发展现状、应用场景以及面临的挑战和未来发展趋势&…...

当三维地理信息遇上气象预警:电网安全如何实现“先知先觉”?

极端天气频发的当下&#xff0c;一场台风、一次暴雨就可能让电力系统陷入瘫痪。但你知道吗&#xff1f;如今的电网已能通过三维地理信息与气象数据的深度融合&#xff0c;在灾害来临前精准锁定风险&#xff0c;甚至将停电事故减少七成以上。这背后&#xff0c;正是国网电力空间…...

C++ string数据查找、string数据替换、string子串获取

string查找示例见下&#xff0c;代码见下&#xff0c;以及对应运行结果见下&#xff1a; #include<iostream>using namespace std;int main() {// 1string s1 "hellooooworld";cout << s1.find("oooo") << endl;// 2cout << (in…...

2025.5.13山东大学软件学院计算机图形学期末考试回忆版本

2025.5.13山东大学软件学院计图期末考试回忆版本 学院&#xff1a;软件学院 老师&#xff1a;周元峰、魏广顺 一、简述题&#xff08;2024原题一&#xff09; 1.图形绘制流水线的组成和作用 2.双缓冲机制是什么&#xff0c;有什么作用&#xff1f; 3.Delaunay三角化的四条…...

思极地图使用

思极地图api文档&#xff1a;思极地图开放平台 | 思极地图API SDK 思极地图SDK: <script src"https://map.sgcc.com.cn/maps?v3.0.0"></script> <script src"https://map.sgcc.com.cn/products/js-sdk/v3/assets/js/jquery-1.11.1.min.js&quo…...

Fiori学习专题四十一:表单控件

上节课我们学习了一些单一控件的使用&#xff0c;但是我们发现在页面内每个控件都占用了一行&#xff0c;这样子就显得不太好看&#xff0c;这节课我们引入一个表单控件来美化一下这个页面。 1.学习表单控件FORM之前我们先了解下哪些情况会使用到表单控件&#xff0c;最常见的场…...

基于STM32、HAL库的TDA7719TR音频接口芯片驱动程序设计

一、简介: TDA7719TR 是 NXP Semiconductors 推出的高性能音频处理芯片,专为汽车音响系统设计。它集成了 AM/FM 收音机调谐器、音频处理和音量控制功能,支持 I2C 控制接口,非常适合与 STM32 微控制器配合使用。 二、硬件接口: 典型的 STM32L4 与 TDA7719TR 硬件连接如下…...

Baklib智能云平台加速企业数据治理

Baklib数据治理核心优势 Baklib作为新一代企业级知识中台&#xff0c;其数据治理能力建立在全资产统一管理与智能化处理框架的双重基础之上。通过构建知识中台的核心架构&#xff0c;平台实现了图文、音视频等多模态数据的标准化存储与动态标签体系&#xff0c;有效解决传统管…...

面试中被问到谈谈你对threadlocal的理解

ThreadLocal 的核心理解 1. 基本概念 ThreadLocal 是 Java 提供的线程局部变量机制&#xff0c;用于在多线程环境中为每个线程维护独立的变量副本&#xff0c;实现线程隔离。其核心思想是空间换时间&#xff0c;通过避免共享变量带来的同步开销&#xff0c;提升并发性能。 2…...

Spring Boot 应用中实现基本的 SSE 功能

SSE 技术简介 SSE&#xff08;Server-Sent Events&#xff09;是一种允许服务器主动向客户端推送数据的技术。它基于 HTTP 长连接&#xff0c;使用简单&#xff0c;特别适合实时数据更新场景&#xff0c;如股票行情、新闻推送等。与 WebSocket 相比&#xff0c;SSE 更轻量级&a…...

【2025最新】Windows系统装VSCode搭建C/C++开发环境(附带所有安装包)

文章目录 为什么选择VSCode作为C/C开发工具&#xff1f;一、VSCode安装过程&#xff08;超简单&#xff01;&#xff09;二、VSCode中文界面设置&#xff08;再也不用对着英文发愁&#xff01;&#xff09;三、安装C/C插件&#xff08;编程必备神器&#xff01;&#xff09;四、…...

【MyBatis-8】MyBatis对象关联查询详解:高效处理复杂关系映射

在实际业务开发中&#xff0c;我们经常需要处理对象之间的关联关系&#xff0c;如一对一、一对多、多对多等。MyBatis作为一款优秀的持久层框架&#xff0c;提供了强大的对象关联查询能力。本文将深入探讨MyBatis中各种关联查询的实现方式、适用场景及最佳实践。 1. MyBatis关…...

Java基础(IO)

所有操作都在内存&#xff0c;不能长时间保存&#xff0c;IO主要在硬盘&#xff0c;可以长时间保存。 一、File类 File类被定义为文件和目录路径名的抽象表示形式&#xff0c;这是因为 File 类既可以表示文件也可以表示目录&#xff0c;他们都通过对应的路径来描述。 提供构…...

Trae IDE:AI深度集成的智能开发环境

&#xff08;以高效人机协作重塑编程体验&#xff09; 概述 Trae IDE&#xff08;发音 /treɪ/&#xff09;是一款深度集成AI能力的现代化开发工具&#xff0c;结合传统IDE的完备功能与前沿AI技术&#xff0c;提供智能问答、代码自动补全、跨文件编程及AI Agent驱动的自动化开…...

网站开发过程中样式忽然不显示问题

老规矩&#xff0c;先听故事&#xff1a;今天我开发网站时候遇到一个问题&#xff0c;就开发的这个网站在默认127.0.0.1运行样式有bug显示不出来&#xff0c;之前都可以&#xff0c;就完全一样的代码&#xff0c;之前可以正常运行显示&#xff0c;今天忽然就不行了&#xff0c;…...

双种群进化算法:动态约束处理与资源分配解决约束多目标优化问题

双种群进化算法&#xff1a;动态约束处理与资源分配解决约束多目标优化问题 一、引言 约束多目标优化问题&#xff08;CMOPs&#xff09;在工程设计、资源分配等领域广泛存在&#xff0c;其核心是在满足多个约束条件的同时优化多个目标函数。传统方法往往难以平衡约束满足与目…...

如何在 CentOS 7 虚拟机上配置静态 IP 地址并保持重启后 SSH 连接

在使用 CentOS 7 的虚拟机时&#xff0c;我们通常需要配置静态 IP 地址&#xff0c;以确保在每次虚拟机重启后能够通过 SSH 连接。本文将介绍如何在 CentOS 7 系统中配置静态 IP 地址&#xff0c;并确保配置在系统重启后依然生效。 步骤 1&#xff1a;检查虚拟机网络接口 首先…...

整数和浮点数转换时的精度损失

文章目录 int和float转换时的精度损失float组成解析&#xff08;1&#xff09; 32位浮点数的结构&#xff08;2&#xff09;示例&#xff1a;解析一个浮点数&#xff08;3&#xff09;偏置值的作用&#xff08;4&#xff09; 偏置值为什么是127&#xff1f;&#xff08;5&#…...