STM32外设AD/DA-基础及CubeMX配置

news2025/5/17 11:15:28

STM32外设AD/DA-基础及CubeMX配置

  • 一,什么是AD/DA
  • 二,基础概念
    • 1,模拟 vs 数字
    • 2,AD转换
        • 1,分辨率 (Resolution)
        • 2,参考电压 (Reference Voltage, Vref)
        • 3,采样率 (Sampling Rate)
    • 3,DA转换
        • 1,分辨率 (Resolution)
        • 2,参考电压 (Reference Voltage, Vref)
        • 3,转换速率与建立时间 (Settling Time)
        • 4,输出缓冲 (Output Buffer)
  • 三,硬件连接:捕捉模拟信号
    • 1,找到 ADC 输入引脚:
    • 2,连接模拟信号源:
    • 3,连接地线 (GND):
    • 4,(可选)连接 Vref:
  • 四,CobeMX配置
    • 1,模式和分辨率相关
        • 1,分辨率 (Resolution)
        • 2,数据对齐 (Data Alignment)
        • 3,转换模式 (Conversion Mode)
    • 2,时钟配置相关
        • 1,时钟来源与分频 (Clock Source & Prescaler)
        • 2,ADCCLK 与转换时间
    • 3,采样时间 (Sampling Time)
    • 4,扫描模式相关
        • 1,扫描转换模式 (Scan Conversion Mode)
        • 2,规则通道配置 (Regular Conversion Launch)
        • 3,扫描结束选择 (End of Conversion Selection - EOC)
        • 4,不连续转换模式 (Discontinuous Conversion Mode)
    • 5,外部触发配置
        • 1,定时器触发 (Timer Trigger):
        • 2,软件触发 (Software Trigger):
        • 3,外部引脚触发 (EXTI line x event):
    • 6,DMA 配置
        • 1,添加 DMA 请求 (Add DMA Request)
        • 2,DMA 通道配置 (DMA Request Settings)

一,什么是AD/DA

我们已经掌握了如何让单片机通过 UART 与外界"交流"。但是,现实世界充满了连续变化的模拟信号,比如温度、光线强度、声音大小等等。单片机内部处理的是离散的数字信号,如何让它们互相理解呢?
这时,ADC (Analog-to-Digital Converter, 模数转换器) 和 DAC (Digital-to-Analog Converter, 数模转换器) 就派上用场了!
ADC: 就像一位"翻译官",把现实世界的模拟语言(连续变化的电压)翻译成单片机能懂的数字语言(离散的数值)。

现实世界的模拟信号比如温度、光线强度、声音大小,其实都可以转化为连续的电压信号

DAC: 则反过来,把单片机的数字指令翻译成模拟世界的电压信号,用来控制模拟器件(比如驱动扬声器发出声音、控制电机速度等)。

这里A代表模拟,D代表数字,怎么记忆?
记住模拟和A的笔画相对数字和D多,就可以将二者关联起来,再记住AD就是A到D,DA就是D到A就行了

二,基础概念

1,模拟 vs 数字

想象一下调节收音机的音量旋钮和按计算器的数字键:

模拟 (Analog): 像音量旋钮,可以在一个范围内连续变化,有无限多个可能的音量值。现实世界的物理量大多是模拟的。
数字 (Digital): 像计算器的按键,只有有限的、离散的状态(0, 1, 2…)。计算机和单片机处理的是数字信号。
ADC 的任务就是把模拟信号"采样"并"量化"成数字值。

2,AD转换

1,分辨率 (Resolution)

分辨率决定了 ADC 能将模拟电压"切"成多少份,也就是它能区分多么细微的电压变化。通常用"位" (bits) 来表示。

例如,一个 12 位的 ADC,能表示 212=4096 个不同的数字级别。如果参考电压是 3.3V,那么它能分辨的最小电压变化大约是 3.3V/4096~~0.0008V或 0.8mV。

分辨率越高,测量越精确,但转换速度可能越慢,成本也越高。

2,参考电压 (Reference Voltage, Vref)

参考电压是 ADC 进行测量的"标尺"。它定义了 ADC 能够转换的模拟电压的最大值。输入的模拟电压不能超过参考电压。

ADC 输出的数字值通常与输入电压的关系是:
在这里插入图片描述
在很多 STM32 单片机中,Vref 通常连接到 Vdda (模拟电源电压),比如 3.3V。精确的 Vref 对于准确的 ADC 转换至关重要。
在这里插入图片描述
在这里插入图片描述

3,采样率 (Sampling Rate)

采样率表示 ADC 每秒钟进行多少次模数转换。单位通常是 SPS (Samples Per Second) 或 Hz。

根据奈奎斯特采样定理,采样率必须至少是被测模拟信号最高频率的两倍,才能无失真地还原原始信号。采样率越高,越能捕捉到快速变化的模拟信号。

3,DA转换

1,分辨率 (Resolution)

与 ADC 类似,DAC 的分辨率也决定了其输出精度的细腻程度,同样用"位" (bits) 表示。

一个 12 位的 DAC,可以将输入的数字值 (0 到
) 映射到输出电压范围内的 4096 个不同的模拟电压等级。分辨率越高,输出的模拟信号越平滑,越接近理想的模拟波形。

2,参考电压 (Reference Voltage, Vref)

DAC 的参考电压定义了其输出模拟电压的最大值。输出电压通常与输入的数字值成正比:

例如,对于 12 位 DAC,Vref = 3.3V:

输入数字值为 0 时,输出电压 ≈ 0V。
输入数字值为 4095 时,输出电压 ≈ 3.3V。
输入数字值为 2048 时,输出电压 ≈ 3.3V * (2048 / 4096) = 1.65V。
同样,稳定精确的 Vref 对 DAC 的输出精度至关重要。

3,转换速率与建立时间 (Settling Time)

DAC 将数字值转换为模拟电压需要一定的时间。建立时间是指从数字输入改变到模拟输出稳定在目标电压的一小段误差范围内所需的时间。这限制了 DAC 能够产生的模拟信号的最大频率。

4,输出缓冲 (Output Buffer)

许多 DAC 内部集成了一个输出缓冲器(运算放大器)。启用输出缓冲可以:

提高驱动能力: 使 DAC 能够驱动一定的负载(比如直接驱动小阻抗的负载或后续电路),而不会导致电压下降。
降低输出阻抗: 提供更稳定的输出电压。
在 CubeMX 中通常可以选择是否启用 DAC 通道的输出缓冲。

三,硬件连接:捕捉模拟信号

将模拟信号连接到 ADC 非常简单:

1,找到 ADC 输入引脚:

在你的 STM32 开发板上,通常会有标明如 PA0, PC1 等,并且这些引脚在 CubeMX 中可以配置为 ADC 的输入通道 (如 ADC1_IN0, ADC1_IN11)。查阅开发板原理图或引脚定义是最好的方法。
在这里插入图片描述

2,连接模拟信号源:

将你的模拟信号源(比如电位器、温度传感器、光敏电阻分压电路的输出端)连接到选定的 ADC 输入引脚。
在这里插入图片描述

3,连接地线 (GND):

确保模拟信号源的地线 (GND) 与 STM32 开发板的地线 (GND) 共地连接。这是保证测量准确的基础。

4,(可选)连接 Vref:

确保 ADC 的参考电压引脚 (Vref+ 或 Vdda) 连接到稳定、精确的参考电压源(通常是开发板上的 3.3V)。

注意: 输入到 ADC 引脚的电压绝对不能超过其允许的最大范围(通常是 0V 到 Vdda/Vref+)。GND 必须连接!

四,CobeMX配置

我的主控芯片ADC输入引脚是PC0,所以CubeMX将PC0引脚配置为ADC-IN引脚
在这里插入图片描述

1,模式和分辨率相关

1,分辨率 (Resolution)

决定 ADC 能分辨的最小电压变化,通常以位 (bits) 表示。STM32 的 ADC 通常支持 12 位、10 位、8 位或 6 位分辨率。
12 bits (常用, 0-4095)
10 bits (0-1023)
8 bits (0-255)
6 bits (0-63)

说明: 分辨率越高,精度越高,但转换时间可能越长。通常选择 12 bits 以获得最佳精度

2,数据对齐 (Data Alignment)

ADC 转换结果是一个数字值(如 12 位),但它存储在 16 位或 32 位的数据寄存器 (ADC_DR) 中。数据对齐方式决定了有效数据位在寄存器中的位置。
Right alignment (右对齐)
Left alignment (左对齐)
Right Alignment: 推荐 有效数据位位于寄存器的低位 (LSB)。例如,12 位结果存储在 bit 11 到 bit 0。读取值即为 0-4095。
Left Alignment: 有效数据位位于寄存器的高位 (MSB)。例如,12 位结果存储在 bit 15 到 bit 4。这种方式在某些需要更高精度比例计算或与 8 位系统兼容时可能有用,但读取后通常需要右移 4 位。

3,转换模式 (Conversion Mode)

定义 ADC 如何进行转换。
Single Conversion Mode (单次转换): 轮询/中断基础 每次触发(软件或硬件)只进行一次转换,然后停止。需要再次触发才能进行下一次转换。常用于轮询法或简单的中断法。
Continuous Conversion Mode (连续转换): DMA常用 首次触发后,ADC 会自动连续不断地进行转换,每次转换完成后立即开始下一次转换,直到手动停止。常用于配合 DMA 进行高速连续采样。

注意: Scan Mode (扫描模式) 和 Discontinuous Mode (不连续模式) 的配置在 “扫描模式设置” 中详述。

配置建议:
分辨率通常选 12 bits。
数据对齐选 Right alignment。
转换模式根据应用选择:需要单次读取用 Single;需要连续采样(尤其配合DMA)用 Continuous。

2,时钟配置相关

1,时钟来源与分频 (Clock Source & Prescaler)

ADC 模块通常有一个独立的可配置时钟源。这个时钟源通常来自 APB2 总线时钟 (PCLK2) 或其他专用时钟 (如 HSI, PLL 输出等),然后经过一个预分频器 (Prescaler) 进一步分频后,才作为 ADC 的工作时钟 (ADCCLK)。

ADCCLK = ADC Clock Source / Prescaler

在 CubeMX 中,通常在 “Clock Configuration” 标签页可以查看和配置 ADC 的时钟来源和频率,而在 ADC 的 “Parameter Settings” 中选择预分频系数。
PCLK2 divided by 2
PCLK2 divided by 4
PCLK2 divided by 6
PCLK2 divided by 8
… (其他可能的时钟源和分频)

2,ADCCLK 与转换时间

ADC 的总转换时间由两部分组成:采样时间 (Sampling Time) 和 固定的转换位数时间。

Total Conversion Time = Sampling Time + N * (1 / ADCCLK)

其中 N 是 ADC 的分辨率 (例如 12 位时 N=12.5 或类似值,具体查阅芯片手册)。

因此,ADCCLK 频率越高,总转换时间越短,允许的最大采样率越高。但是,ADCCLK 不能超过芯片手册规定的最大值 (通常在几十 MHz 范围)。

重要限制: 必须确保配置后的 ADCCLK 频率不超过芯片数据手册 (Datasheet) 中规定的 ADC 最大工作频率 (fADC_max)。例如,对于很多 F1 系列是 14MHz,F4 系列可能高达 36MHz。超过此限制可能导致转换结果不准确或 ADC 工作异常。
配置建议: 在满足最大频率限制的前提下,选择一个能提供所需采样率的尽可能高的 ADCCLK 频率。通常选择中间的分频值 (如 /4, /6) 是比较稳妥的选择。

3,采样时间 (Sampling Time)

在这里插入图片描述

采样时间 (Sampling Time) 指 ADC 在转换前对输入信号进行采样保持的时间长度。这个时间需要足够长,以确保 ADC 内部的采样保持电容 (Csh) 完全充电到输入引脚的电压。

配置选项:
采样时间以 ADCCLK 周期数表示。CubeMX 为每个 ADC 通道提供了多个可选的采样时间值。
1.5 Cycles
7.5 Cycles
13.5 Cycles
28.5 Cycles
55.5 Cycles
71.5 Cycles
239.5 Cycles
… (其他可能值)

选择依据:
选择合适的采样时间主要取决于模拟信号源的输出阻抗 (Rsource) 和 ADC 输入引脚的特性(内部采样电容 Csh 和输入电阻 RADC)。
为了让采样电容 Csh 充电到足够接近输入电压(例如误差小于 1/2 LSB),需要的充电时间 Tcharge 与 RC 时间常数有关。粗略地说:

Tcharge ≈ k * (Rsource + RADC) * Csh

其中 k 是一个系数(通常取 7 到 10 左右以达到足够精度)。
我们选择的采样时间 (Sampling Time Cycles / ADCCLK) 必须大于 Tcharge。

简化规则:
低阻抗信号源 (如运放输出,< 1kΩ): 可以选择较短的采样时间 (如 1.5, 7.5, 13.5 Cycles)。
中阻抗信号源 (如电位器分压,1kΩ ~ 50kΩ): 需要选择中等的采样时间 (如 28.5, 55.5 Cycles)。
高阻抗信号源 (> 50kΩ): 需要选择较长的采样时间 (如 71.5, 239.5 Cycles),或者在 ADC 输入前添加一个电压跟随器(运放)来降低信号源阻抗。

配置建议:
对于不确定的信号源,或者为了保证兼容性,选择一个稍长的采样时间通常是安全的 (例如 28.5 Cycles 或 55.5 Cycles)。
选择过短的采样时间会导致转换结果偏低或不准确。
选择过长的采样时间会增加总转换时间,降低最大采样率。
在多通道扫描模式下,可以为每个通道配置不同的采样时间。

注意: 如果信号源阻抗非常高,即使选择最长采样时间也可能不够。此时必须考虑使用外部缓冲电路。

4,扫描模式相关

当需要测量多个模拟输入通道时,需要配置 ADC 的扫描模式。这些设置决定了 ADC 如何依次转换多个通道。

1,扫描转换模式 (Scan Conversion Mode)

在这里插入图片描述

Disabled: 单通道 ADC 只转换配置的第一个通道 (Rank 1)。
Enabled: 多通道 ADC 会按照配置的 Rank 顺序,依次转换多个通道。

2,规则通道配置 (Regular Conversion Launch)

在这里插入图片描述

当 Scan Mode 启用时,需要配置以下参数来定义转换序列:

Number Of Conversion: 定义在一次扫描序列中要转换的通道总数 (1 到 16 个)。
Rank 配置: 对于序列中的每一个 Rank (位置),需要指定:
Channel: 选择要在此 Rank 转换的 ADC 通道 (e.g., Channel 0, Channel 1, Temp Sensor, Vbat)。
Sampling Time: 为此通道设置采样时间(可以每个通道不同)。
示例: 转换 PA0 (Channel 0) 和 PA1 (Channel 1)

Number Of Conversion: 2
Rank 1: Channel 0, Sampling Time: 28.5 Cycles
Rank 2: Channel 1, Sampling Time: 55.5 Cycles

3,扫描结束选择 (End of Conversion Selection - EOC)

在这里插入图片描述

这个设置决定了何时产生 EOC (转换结束) 标志或中断。

End of single conversion (单个转换结束)
End of sequence conversion (序列转换结束)
End of single conversion: 每个通道转换完成后都会产生 EOC 标志。
End of sequence conversion: DMA常用 只有当整个扫描序列中的所有通道都转换完成后,才会产生 EOC 标志。这在使用 DMA 读取整个序列结果时非常有用。

4,不连续转换模式 (Discontinuous Conversion Mode)

在这里插入图片描述

这是一个可选的高级模式,允许将扫描序列分成几个小组进行转换。每次外部触发只会转换一个小组。
如果启用,需要设置 “Number Of Discontinuous Conversions” 来指定每个小组包含的通道数量。例如,扫描 6 个通道,分成 3 组,每次触发转换 2 个通道。

应用场景: 需要以较低频率交错采样多组通道,或者在特定时间点集中采样某几个通道。

配置建议:
测量单通道:Scan Mode: Disabled。
测量多通道:Scan Mode: Enabled,并配置好 Number Of Conversion 和每个 Rank 的 Channel/Sampling Time。
配合 DMA 读取整个序列:设置 EOC Selection: End of sequence conversion。
Discontinuous Mode 使用较少,仅在特定需求时启用。

5,外部触发配置

除了软件启动转换 (调用 HAL_ADC_Start()),ADC 还可以配置为由外部事件触发启动,这对于精确控制采样时刻至关重要,尤其是在配合 DMA 使用时。

选择相应的外部触发源 (External Trigger Conversion Source),可以启动ADC转换
常见的触发源包括:

1,定时器触发 (Timer Trigger):

最常用 可以选择多个定时器 (TIM1, TIM2, TIM3, …) 的不同事件作为触发源。常用的有:
Timer x Trigger Out event (TRGO): 定时器的主要触发输出信号,通常配置为由定时器的更新事件 (Update Event - UEV) 产生。这是实现固定频率采样的关键。
Timer x Capture Compare x event: 定时器的捕获/比较匹配事件。

2,软件触发 (Software Trigger):

默认/手动 通过调用 HAL_ADC_Start() 等函数来手动启动转换。

3,外部引脚触发 (EXTI line x event):

由外部 GPIO 引脚上的边沿事件触发。
这个边沿事件什么呢
是触发边沿 (External Trigger Conversion Edge)
选择触发事件的有效边沿。
Rising edge (上升沿)
Falling edge (下降沿)
Both edges (双边沿)
Disabled (如果选择软件触发)

说明: 对于定时器触发,通常选择 Rising edge。具体选择取决于触发源信号的特性。

配置建议:
轮询法/简单中断法: 通常使用 Software Trigger (保持默认设置)。
精确固定频率采样 (配合 DMA): 推荐 选择一个定时器 (如 TIM3) 的 Trigger Out event 作为触发源,并设置边沿为 Rising edge。同时需要配置对应定时器的 TRGO 输出 (详见 “触发定时器配置”)。
确保 ADC 的 Continuous Conversion Mode 设置为 Disabled,否则外部触发可能只在第一次生效。

6,DMA 配置

使用 DMA (Direct Memory Access) 可以让 ADC 转换结果自动传输到内存,无需 CPU 干预,极大提高效率,是处理连续采样或高速采样的关键。

1,添加 DMA 请求 (Add DMA Request)

在这里插入图片描述

在 CubeMX 的 ADC 配置页面下找到 “DMA Settings” 标签页。点击 “Add” 按钮,选择 ADC 对应的 DMA 请求 (例如 ADC1)。

2,DMA 通道配置 (DMA Request Settings)

为选定的 DMA 请求配置参数:
Stream/Channel: 选择一个可用的 DMA 通道/流 (CubeMX 通常会自动分配)。
Direction: 方向。Peripheral To Memory (由 CubeMX 自动设置)。
Priority: DMA 通道优先级 (Low, Medium, High, Very High)。当多个 DMA 请求冲突时,高优先级优先。
Mode: DMA 传输模式。
Normal: 传输完指定长度的数据后停止。
Circular: 常用 传输到缓冲区末尾后自动回到缓冲区开头继续传输,形成环形缓冲区。这是 ADC 连续采样配合 DMA 的核心配置。
Increment Address: 地址自增设置。
Peripheral: 不勾选 ADC 数据寄存器地址固定。
Memory: 勾选 内存缓冲区地址需要递增。
Data Width: 数据宽度(外设 Peripheral / 内存 Memory)。

推荐配置:
Peripheral: Word, Memory: Word。
原因:
STM32 ADC 数据寄存器 (DR) 通常是 32 位的,即使有效数据只有 12 位或 16 位。
DMA 以 Word (32位) 传输可以最高效地匹配硬件,减少配置复杂度,并保证内存对齐。
虽然 ADC 结果是 16 位或 12 位,但将其存入 uint32_t 类型的缓冲区数组通常是最佳实践(代码中读取时取低位即可)。
将 Memory Width 设为 Half Word (16位) 也可以工作(需配合 uint16_t 缓冲区),但 Word-Word 是更常见且通常推荐的配置。
可选配置:
Peripheral: Half Word, Memory: Half Word (需配合 uint16_t 缓冲区)。
不推荐配置: Byte 传输效率较低。
配置建议:
进行连续采样(如定时器触发)或高速采样时,必须启用 DMA。
Mode 设置为 Circular。
Increment Address 勾选 Memory,不勾选 Peripheral。
Data Width 推荐 Peripheral: Word, Memory: Word,并使用 uint32_t 类型的 DMA 缓冲区。
关联:
DMA 的配置与 ADC 的触发方式 (External Trigger)、连续转换模式 (Continuous/Single) 以及中断配置 (NVIC) 紧密相关,需要协同设置才能正确工作。

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

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

相关文章

React Native简介

React Native 是由 Meta&#xff08;原 Facebook&#xff09;开源的跨平台移动应用开发框架&#xff0c;基于 React 和 JavaScript&#xff0c;允许开发者使用同一套代码库构建 iOS 和 Android 原生应用。通过 JavaScript 调用原生组件实现高性能渲染。 跨平台开发 共享 80%-9…

GCC 使用说明

参数 -fPIC ppc_85xx-gcc -shared -fPIC liberr.c -o liberr.so -fPIC 作用于编译阶段&#xff0c;告诉编译器产生与位置无关代码(Position-Independent Code)&#xff0c; 则产生的代码中&#xff0c;没有绝对地址&#xff0c;全部使用相对地址&#xff0c;故而代码可以被加…

Verilog HDL 语言整理

Verilog HDL 语言 Verilog HDL 简介 硬件描述语言Hardware Description Language是一种用形式化方法即文本形式 来描述和设计数字电路和数字系统的高级模块化语言 Verilog HDL&#xff08;Hardware Description Language&#xff09;是一种硬件描述语言&#xff0c;用于建模…

车道线检测----Lane-ATT

本文针对车道线检测----Lane-ATT论文所有细节进行阐述&#xff0c;有帮助的话点个收藏关注吧 保持对车道的关注&#xff1a;注意力引导的车道检测 摘要 但许多方法在保持实时效率方面存在问题&#xff0c;这对于自动驾驶车辆至关重要。在本文中&#xff0c;我们提出了LaneATT…

linux安装宝塔面板到数据盘

操作很简单&#xff0c;假如数据盘挂载在cipan1&#xff0c;在数据盘新建目录www&#xff0c;为了方便对应。 执行一下命令&#xff0c;创建软连接 ln -s /cipan1/www www 此时&#xff0c;根目录就出现了www文件夹 下面正常安装宝塔即可

【基础】Windows开发设置入门7:PowerShell的相关概念和使用

前言 大家熟悉的docker、Python&#xff0c;但对于Windows上有一套开配合开发的相对底层的环境设置&#xff0c;包括powershell、winget、WSL、还有开发驱动器什么的&#xff0c;我准备系统学一下&#xff0c;不然地基不牢&#xff0c;也盖不起冲天高楼~ 本节&#xff0c;介绍…

芯片生态链深度解析(一):基础材料篇——从砂砾到硅基王国的核心技术突围

【开篇&#xff1a;芯片——现代文明的“炼金术”】 当您滑动手机屏幕、驾驶新能源汽车、甚至用AI生成一幅画时&#xff0c;是否想过这些科技奇迹都始于一粒沙子&#xff1f;芯片&#xff0c;这个边长不足2厘米的黑色薄片&#xff0c;正是通过将砂砾提纯为高纯度硅锭&#xff…

一款利用ADB (安卓调试桥)来控制手机的玩机工具

—————【下 载 地 址】——————— 【​本章下载一】&#xff1a;https://drive.uc.cn/s/f36ed8ff62f74 【​本章下载二】&#xff1a;https://pan.xunlei.com/s/VOQDmKCq4u-CygjX9Tcn3fxEA1?pwdwf3t# 【百款黑科技】&#xff1a;https://ucnygalh6wle.feishu.cn/wiki/…

使用mermaid 语言绘画时序图和链路图

给大家展示一下效果&#xff0c; 官方地址&#xff1a;https://mermaid.nodejs.cn/ 官方开发地&#xff1a;https://mermaid.nodejs.cn/intro/#google_vignette graph LR%% 样式定义&#xff08;完全保留&#xff09; classDef user fill:#E1F5FE,stroke:#0288D1;classDef …

浅论3DGS溅射模型在VR眼镜上的应用

摆烂仙君小课堂开课了&#xff0c;本期将介绍如何手搓VR眼镜&#xff0c;并将随手拍的电影变成3D视频。 一、3DGS模型介绍 3D 高斯模型是基于高斯函数构建的用于描述三维空间中数据分布概率的模型&#xff0c;高斯函数在数学和物理领域有着广泛应用&#xff0c;其在 3D 情境下…

6种方式来探究数据集的的方法worldquant

覆盖率百分比 指金融数据字段&#xff08;如股价、成交量、财务指标&#xff09;在时间或空间上的有效数据比例。 时间维度&#xff1a;数据在历史周期内的完整度&#xff08;如&#xff1a;某股票过去 1 年中&#xff0c;95% 的交易日有收盘价&#xff09;。空间维度&#xf…

深度学习中的归一化:提升模型性能的关键因素

&#x1f4cc; 友情提示&#xff1a; 本文内容由银河易创AI&#xff08;https://ai.eaigx.com&#xff09;创作平台的gpt-4-turbo模型辅助完成&#xff0c;旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证&#xff0c;建议读者通过官方文档或实践进一步确认…

vue+threeJS 大理石贴图

嗨&#xff0c;我是小路。今天主要和大家分享的主题是“vuethreeJS 大理石贴图”。 通过 Vue 3 和 Three.js 实现大理石纹理效果&#xff0c;并将这种技术应用于产品展示、虚拟展览、甚至是互动游戏之中&#xff0c;其潜力无穷。今天主要介绍基础的大理石贴图。 vueth…

WebGL 3着色器和GLSL

我们之前提到过着色器和GLSL&#xff0c;但是没有涉及细节&#xff0c;你可能已经对此有所了解&#xff0c; 但以防万一&#xff0c;这里将详细讲解着色器和GLSL。 在工作原理中我们提到&#xff0c;WebGL每次绘制需要两个着色器&#xff0c; 一个顶点着色器和一个片段着色器&…

华为OD机试真题——通信系统策略调度(用户调度问题)(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 B卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…

llamafactory SFT 从断点恢复训练

背景 我使用llamafactory sft 微调模型的时候。gpu停止运行了。日志文件没有任何的报错信息。 显存还是占用状态。 查看llamafactory的进程是下述信息&#xff1a; 151312 151306 91 17:42 ? 03:58:10 [llamafactory-cl] 既然如此&#xff0c;那就只能从断点恢复训练了。 …

计算机网络-----6分层结构

目录 “分层” 的设计思想&#xff1a; 计算机网络要完成的功能&#xff1a; 计算机网络的分层结构&#xff1a; 网络体系结构的概念&#xff1a; 各层之间的关系&#xff1a; 数据的传输过程 水平视角&#xff1a; 垂直视角&#xff1a; 相关概念 协议三要素&#x…

运算放大器相关的电路

1运算放大器介绍 解释&#xff1a;运算放大器本质就是一个放大倍数很大的元件&#xff0c;就如上图公式所示 Vp和Vn相差很小但是放大后输出还是会很大。 运算放大器不止上面的三个引脚&#xff0c;他需要独立供电&#xff1b; 如图比较器&#xff1a; 解释&#xff1a;Vp&…

python版本管理工具-pyenv轻松切换多个Python版本

在使用python环境开发时&#xff0c;相信肯定被使用版本所烦恼&#xff0c;在用第三方库时依赖兼容的python版本不一样&#xff0c;有没有一个能同时安装多个python并能自由切换的工具呢&#xff0c;那就是pyenv&#xff0c;让你可以轻松切换多个Python 版本。 pyenv是什么 p…

elementUI 循环出来的表单,怎么做表单校验?

数据结构如下&#xff1a; diversionParamList: [ { length: null, positionNumber: null, value: null, } ] 思路&#xff1a;可根据 index 动态绑定 :props 属性值&#xff0c;校验规则写在:rules <div class"config-item" v-for"(item, index) in form.…