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

STM32的HAL库开发---ADC

一、ADC简介

1、ADC,全称:Analog-to-Digital Converter,指模拟/数字转换器

把一些传感器的物理量转换成电压,使用ADC采集电压,然后转换成数字量,经过单片机处理,进行控制和显示。

 2、常见的ADC类型

3、并联比较型工作示意图

 假如VREF参考电压为8v,那么从下到上电压为1V,2V、、8V,Vx为模拟电压输入,假如输入电压为1V,那最下边的比较器就会给编码器输出电压,然后编码器经过编码,就是输出001,代表1V。如果输出为3V,则第三个比较器输出给编码器,输出011,代表3V。这个编码器输出是3位的,称为ADC的分辨率。

优点:转换速度快

缺点:成本高、功耗高、分辨率低,成本高主要是需要2的分辨率次方个电阻,这里分辨率为3,所以需要8个电阻,7个比较器。如果是12位的分辨率,需要4096个电阻和4095个比较器。

4、逐次逼近型工作示意图

首先是数码寄存器进行编码,一般是先把高位定位1,也就是100,然后经过D/A转换器转换成模拟电压,连接到比较器上边,输入电压Vx与这个电压进行比较,如果输入电压大于等于比较电压,控制电路会把数码寄存器的最高位锁存下来,然后第二轮把次高位置为1,当还是输入电压大,就把第二位也保存下来,将最低位设置为1,进行第三轮比对,如果输入电压还是比比较电压大,就超过了量程范围了,如果比比较电压小,就说明此时输入电压与比较电压接近,次数数码寄存器的值就是ADC的值了,采集也是接近,不是准确的。 

类似于天平,一点点的加大电压。

特点:分辨率和采样速度相互矛盾,分辨率越高,采样速率越低

优点:结构简单、低功耗

缺点:转换速度较慢

5、ADC的特性参数

分辨率:表示ADC能辨别的最小模拟量,用二进制位数表示,比如:8、10、12、16位等。可以理解为刻度划分,以12位为例,如果参考电压为3.3V,就会把3.3V平分为4096份。
转换时间:表示完成一次A/D转换所需要的时间,转换时间越短,采样率就可以越高,如果一次转换时间为200ms,则1s可以转换5次。
精度:最小刻度基础上叠加各种误差的参数,精度受ADC性能、温度和气压等影响
量化误差:用数字量近似表示模拟量,采用四舍五入原则,此过程产生的误差为量化误差。假设最小分辨率为1V,当输入电压为0.8V的时候,四舍五入被ADC采集后是1V,量化误差就是0.2V。

6、STM32各系列ADC的主要特性


二、ADC工作原理 

2.1 ADC框图简介

F1系列:

参考电压/模拟部分电压,其中VDDA和VSSA就是供电电源,VREF+和VREF-是参考电压。

输入通道,总共有16个通道,都是来自IO口的复用。可以看到图中ADC通道总共有18个,16个为IO口,还有两个通道,一个通道连接温度传感器,另一个连接内部参考电压VREFINT。

转换序列,决定18个通道怎么分组进行转换的。

触发源,一个是规则组触发,一个是注入组触发。规则组触发来自下面部分,首先需要将图中EXTRIG位置1。然后看图发现,由EXTSEL位决定。如果选择外部中断线11或者定时器8的,还需要多设置一个选择器。注入组触发跟规则组是类似的。只是触发源不一样。左边是ADC1和ADC2的触发源,右边的是ADC3的触发源。

转换时间,由ADC时钟影响。

数据寄存器,ADC转换结果会放到数据寄存器里边,有注入通道数据寄存器和规则通道数据寄存器。其中注入通道数据寄存器有4个,每个注入通道各对应一个寄存器。而规则通道数据寄存器只有一个,所以16个通道公用一个寄存器。由于公用可能导致数据丢失,所以下方有DMA请求,开启相应的DMA请求,让DMA帮助搬运数据,防止数据丢失。

中断

当数据寄存器里边有数据代表转换结束,就会产生响应的标志位。转换结束将EOC置1,如果还把对应的中断使能,就会产生中断请求,中断信号就会来到NVIC里边。

当注入组通道转换结束之后,JEOC标志位就会置为1,开启中断使能位之后,也会产生中断。

模拟看门狗,在ADC寄存器里边可以设置阀值高限和阀值低限。当ADC转换结果高于阀值或者低于阀值,模拟看门狗时间标志位都会置1。

F4系列:

参考电压/模拟部分电压,与F1一样

输入通道,比F1对一个VBAT通道,总共19个通道。

转换序列,与F1一样

触发源,与F1不一样,不过也是配置选择器,规则组有规则组的触发,注入组有注入组的触发。

转换时间

数据寄存器

中断,多了一个DMA溢出中断,如果DMA读的数据是丢失的,就会产生中断。

 F7系列与F4几乎差不多,自行查看使用手册。

H7系列:

VREF+电压,参考数据手册即可。

ADC双时钟域架构,可以选择两个ADC工作时钟。

输入通道,H7系列支持差分转换,常用的是单端模式,所以一般只使用上面那个通道即可。在单端模式下,下面那个会自动接到地上面。

转换序列

触发源,也是分为规则组触发和注入组触发。

转换时间

参考电压

ADC核心,逐次逼近型ADC。

数据寄存器

中断,中断非常多

通道预选控制信号,例如想要转换通道5,就需要先将这个预选里边对应的通道位置1,不然转换结果不正确,相当与开关 。

2.2 参考电压/模拟部分电压

模拟部分电源:正极VDDA由3.3V经过RC低通滤波器,即可得到。负极VSSA就是地。

ADC供电电源:VSSA、 VDDA (2.4V≤VDDA≤3.6V ) ,实际接的3.3V。

参考电压:

VREF+实际经过一个跳线帽,把这个跳线帽接上,那么VREF+也就连接到了VDDA,VDDA就是3.3V。VREF-接的地。

ADC输入电压范围:VREF–≤VIN≤VREF+(即0V≤VIN≤3.3V ) ,ADC输入的电压一定在这个范围内,不然会烧掉芯片。

2.3 输入通道

其中ADC前16个通道是GPIO复用配置的,后面两个是内部的。ADC2和ADC3有一些通道连接的是VSS。这个表在手册里是找不到的,但是可以在数据手册里边的引脚部分看到ADC引脚。 

2.4 转换序列

A/D转换被组织为两组:规则组(常规转换组)和注入组(注入转换组),在F1和F4系列里边,叫规则组和注入组。在F7和H7里边,叫常规转换组和注入转换组。

规则组最多可以有16个转换,注入组最多有4个转换。通道转换顺序可以设置。

规则组与注入组执行优先级对比: 

规则组有16个通道,可以设置16个顺序。注入组有4个通道,可以设置4个转换顺序。

这里注入组可以打断规则组的转换,假如规则组正在按顺序转换,先转换第1个通道,然后在转换第二个通道的时候,发现注入组转换被触发了,这时候会先把规则组的第二个转换完成,然后转去转换注入组的通道,最多把注入组的4个通道都抓换完成,在回去转换规则组的通道。

注入组类似于中断一样,可以打断规则组的转换。其中的顺序1、2、3、4.。。。N就是转换序列。抓换序列分为规则序列和注入序列。

规则组序列设置:

 规则序列寄存器转换序列控制由SQR1、SQR2\SQR3控制,其中SQR3的SQ1[4:0]位设置第一个要转换的通道,假如第一个要转换的通道是15,就把15写入SQ1里边。第二个转换通道12,就把12写入SQ2里边。第三个转换通道1,第四个转换通道1,可以对一个通道多次转换。这里ADC有18个通道对应0-17,规则序列有16个转换顺序。最后把转换的通道数写在SQL里边。这里配置了4个通道,就写入3,而不是写入4,写入4代表有5个通道了。

 注入组序列设置:

由于注入组只有4个通道顺序需要配置,所以一个寄存器即可满足。假如现在需要配置两个通道,那么直接在JL里边设置为1即可。 例如将通道15设置为第一个转换,通道10设置为第二个转换,那么需要将15写进JSQ3里边,而不是JSQ1里边,将10写进JSQ4里边。也就是说从JSQ4开始往上倒着设置。如果转换4个通道就是从JSQ1开始设置。

注意:注入序列的转换顺序是从JSQx[ 4 : 0 ]x=4-JL[1:0])开始

2.5 触发源

F1系列:

触发转换的方法有两种:

1ADON位触发转换(仅限F1系列)

ADC_CR2寄存器的ADON位为1,再单独给ADON位写1,只能启动规则组转换。这个里边的单独意思是,上电后ADON位为1,这时候只给ADON写1,不改变其他位。

2)外部事件触发转换

外部事件触发转换分为:规则组外部触发和注入组外部触发

规则组外部触发使用方法:

注入组外部触发使用方法:

F4/F7系列:

规则组外部触发使用方法:

注入组外部触发使用方法:

 H7系列:基本与F4没啥区别,就是通道数多了

 规则组外部触发使用方法:

注入组外部触发使用方法:

 

2.6 转换时间 

F1系列:

设置ADC时钟:

这里边APB2最大72M,也就是说分频系数设置为2的时候,可以出现36M的ADC时钟频率。但是ADC最大工作频率14M,超过14M就会转换不准确。所以要设置比14M小。

常见设置分频系数为6,得到ADC工作时钟为12MHz

ADC转换时间:

使用手册:

这个是手册;里边给出的例子,意思就是ADC最短设置SMP为000,需要1.5 + 12,5 = 14个采样周期。ADC时钟为14M,则采样时间为14 * (1 / 14000000) = 1us 

F4系列:

设置ADC时钟:与F1系列一样,只是ADC最大时钟变成了36M了

ADC转换时间:

由于F4和F7系列的ADC分辨率是可以自行设置的,分辨率不同,他的采样周期是不一样的。

 

分辨率不同,F4系列的快速转换模式: 

下面这个是F4的ADC_CR1寄存器里边对RES位的描述,配置分辨率的。 

H7系列较为复杂,这里不举例了 

2.7 数据寄存器

F1系列:

数据寄存器分为规则组和注入组。

规则组:规则组最多16个转换,转换结果会按照转换顺序进行输出,输出到规则转换数据寄存器里边,这个寄存器是32位有效的,但是一般只使用独立模式,所以只用到低16位。高16位是用于双ADC模式的。

注入组:注入组有4个通道,同时注入组有4个数据寄存器,所以每个通道对应一个寄存器。

由于ADC的分辨率为12位的,也就是说ADC转换后,数据只有12位,但是可以看到数据寄存器里边是使用了16位的,那么就存在数据对齐。

ADCx_CR2寄存器的ALIGN位设置数据对齐方式,可选择:右对齐或者左对齐 。

F4//F7系列:

基本和F1系列一样,只是规则数据寄存器是16位有效的。

即使F4和F7系列支持设置分辨率,但是最高也只是12位,同样存在数据对齐问题。

ADCx_CR2寄存器的ALIGN位设置数据对齐方式,可选择:右对齐或者左对齐,右对齐就是左边留空格,左对齐就是右边留空格。 

H7系列:

H7系列最大分辨率可以设置为16位的。

OVSS[3:0]LSHIFT[3:0]位域设置数据对齐方式,可选择:右对齐或者左对齐

2.8 中断 

F1/F4/F7系列ADC中断事件汇总表:

EOC:用于标志规则通道转换结束,当规则通道数据转换结束完成的时候,这个EOC位会被硬件自动置1,如果使能了EOCIE位,就会产生中断来到NVIC。

JEOC:对应注入通道转换结束的。

AWD:设置了模拟看门狗之后,如果ADC转换结果超过了对应的上限阀值,或者低于下限阀值,就会将AWD位自动置1。如果使能了AWDIE位,就会产生对应的中断。

OVR:F1系列没有这个中断,当CPU读取数据时或者DMA读取数据时,对应数据寄存器已经丢失看或者还没有转换完成就会将OVR位置1.

DMA请求:只适用于规则组

规则组每个通道转换结束后,除了可以产生中断外,还可以产生DMA请求,利用DMA及时把转换好的数据传输到指定的内存里,防止数据被覆盖,也就防止数据丢失。

H7系列中断:

1、ADC准备就绪就可以产生中断

2、常规组里边配置的每一个转换结束可以产生中断,同时常规组里边的所有转换结束也可以产生中断。

3、注入组和规则组一样,每一个和所有转换结束后,都可以产生中断。

4、H7系列有3个模拟看门狗,所以可以产生3个中断。

5、ADC转换分为采样过程和转换过程,采样结束后可以产生中断。

6、上溢就是数据丢失。

2.9 单次转换模式和连续转换模式 

通过设置ADC_CR2寄存器里边的CONT位配置是单词还是连续转换。

CONT

0

1

转换模式

单次转换模式

连续转换模式

单次转换模式就是只触发一次转换,而连续转换模式就是自动触发下一次转换。连续转换模式只有规则组能设置。

规则组:在单次转换模式下,ADC只会转换一次,然后ADC停止,而连续模式下,ADC不会停止。

注入组:单次转换就是转换一次后停止,连续转换模式下,由于规则组一直在转换,需要将JAUTO位置1,注入组才能转换。

2.10 扫描模式

通过设置SCAN位,SCAN位为1,开启扫描模式,SCAN位为0,关闭扫描模式。

 关闭扫描模式,ADC只会转换规则序列里或者注入系列里边的第一个通道进行转换,后面序列的就不转换了。而开启扫描模式后,ADC会把规则序列里或者注入系列里边的通道都转换一次。

不同模式组合的作用: 如果开启了连续转换和使用扫描模式,会对所有设置的通道都转换一次后,再次开启转换所用通道,连续转换就相当于一个循环。而扫描相当于一个开关,控制转换一个还是序列里边的所有。

例子:如果是转换一次,就选择单次转换,如果是一个通道就不开启扫描,多个通道就开启扫描。

 一种比较少用的模式:不连续采样模式(F1手册称为:间断模式),只适用在扫描模式下。如果设置为2,就是第一次转换1、2通道,第二次转换3、4通道。

 

相关文章:

STM32的HAL库开发---ADC

一、ADC简介 1、ADC,全称:Analog-to-Digital Converter,指模拟/数字转换器 把一些传感器的物理量转换成电压,使用ADC采集电压,然后转换成数字量,经过单片机处理,进行控制和显示。 2、常见的AD…...

PostgreSQL有undo表空间吗?

PostgreSQL有undo表空间吗 PostgreSQL 没有单独的 Undo 表空间,其事务回滚和多版本并发控制(MVCC)机制与 Oracle 等数据库有显著差异。 一 PostgreSQL 的 MVCC 实现 PostgreSQL 通过 多版本并发控制(MVCC) 管理事务…...

Huatuo热更新--安装HybridCLR

1.自行安装unity编辑器 支持2019.4.x、2020.3.x、2021.3.x、2022.3.x 中任一版本。推荐安装2019.4.40、2020.3.26、2021.3.x、2022.3.x版本。 根据你打包的目标平台,安装过程中选择必要模块。如果打包Android或iOS,直接选择相应模块即可。如果你想打包…...

Windows环境安装部署minimind步骤

Windows环境安装部署minimind步骤 必要的软件环境 git git,可下载安装版,本机中下载绿色版,解压到本地目录下(如:c:\soft\git.win64),可将此路径添加到PATH环境变量中,供其他程序…...

前端面试手写--虚拟列表

目录 一.问题背景 二.代码讲解 三.代码改装 四.代码发布 今天我们来学习如何手写一个虚拟列表,本文将把虚拟列表进行拆分并讲解,然后发布到npm网站上. 一.问题背景 为什么需要虚拟列表呢?这是因为在面对大量数据的时候,我们的浏览器会将所有数据都渲染到表格上面,但是渲…...

【算法进阶详解 第一节】树状数组

【算法进阶详解 第一节】树状数组 前言树状数组基础树状数组原理树状数组能够解决的问题 树状数组提高树状数组区间加,区间和操作二维树状数组 树状数组应用树状数组区间数颜色树状数组二维偏序 前言 树状数组在算法竞赛中十分常见,其能解决二维数点&am…...

青少年编程与数学 02-009 Django 5 Web 编程 16课题、权限管理

青少年编程与数学 02-009 Django 5 Web 编程 16课题、权限管理 一、授权授权的主要特点和作用授权的类型应用场景 二、权限系统使用Django内置的权限系统使用组管理权限使用第三方库在视图中应用权限 三、权限管理示例步骤 1: 创建Django项目和应用步骤 2: 定义模型和权限步骤 …...

第四十四篇--Tesla P40+Janus-Pro-7B部署与测试

环境 系统:CentOS-7 CPU: 14C28T 显卡:Tesla P40 24G 驱动: 515 CUDA: 11.7 cuDNN: 8.9.2.26创建环境 conda create --name trans python3.10torch 2.6.0 transformers 4.48.3克隆项目 git clone https:/…...

低成本、高效率且成熟的电商实时数据采集方案:梦想成真?

在电子商务领域,数据是驱动业务决策的核心资源。实时数据采集对于电商企业而言,意味着能够即时洞察市场动态、消费者行为以及运营效果,从而快速调整策略,提升竞争力。然而,如何在保证数据质量的同时,实现低…...

微信小程序之mobx-miniprogram状态管理

目前已经学习了6种小程序页面、组件间的数据通信方案,分别是: 1. 数据绑定: properties 2.获取组件实例: this.selectComponent() 3.事件绑定: this.triggerEvent() 4. 获取应用实例:getApp() 5. 页面间通信: EventChannel 6.事件总线:pubsub-js 在中小型项目…...

uniapp可视化-活动报名表单系统-代码生成器

活动报名表单系统小程序旨在为各类活动组织者提供一个便捷、高效的线上报名管理平台,同时为参与者提供简单易用的报名途径。 主要功能 活动发布:活动组织者可以发布活动的详细信息,包括活动名称、时间、地点、活动内容等。用户可以在小程序中…...

1.从零开始学会Vue--{{基础指令}}

全新专栏带你快速掌握Vue2Vue3 1.插值表达式{{}} 插值表达式是一种Vue的模板语法 我们可以用插值表达式渲染出Vue提供的数据 1.作用:利用表达式进行插值,渲染到页面中 表达式:是可以被求值的代码,JS引擎会将其计算出一个结果 …...

深入解析操作系统控制台:阿里云Alibaba Cloud Linux(Alinux)的运维利器

作为一位个人开发者兼产品经理,我的工作日常紧密围绕着云资源的运维和管理。在这个过程中,操作系统扮演了至关重要的角色,而操作系统控制台则成为了我们进行系统管理的得力助手。本文将详细介绍阿里云的Alibaba Cloud Linux操作系统控制台的功…...

CSS Grid 网格布局,以及 Flexbox 弹性盒布局模型,它们的适用场景是什么?

CSS Grid网格布局和Flexbox弹性盒布局模型都是现代CSS布局的重要工具,它们各自具有独特的优势和适用场景。 作为前端开发工程师,理解这些布局模型的差异和适用场景对于编写高效、可维护的代码至关重要。 CSS Grid网格布局 适用场景: 复杂…...

2025.2.16机器学习笔记:TimeGan文献阅读

2025.2.9周报 一、文献阅读题目信息摘要Abstract创新点网络架构一、嵌入函数二、恢复函数三、序列生成器四、序列判别器损失函数 实验结论后续展望 一、文献阅读 题目信息 题目: Time-series Generative Adversarial Networks会议: Neural Information…...

高通推出骁龙游戏超级分辨率™:充分释放移动游戏性能,带来更持久的续航

Snapdragon Elite Gaming 一直致力于为每位用户打造卓越游戏体验。骁龙支持众多端游级特性,包括144FPS游戏体验、True 10-bit HDR支持的最高视觉质量的超流畅图形,让玩家可以畅享超10亿色的游戏体验。骁龙将许多移动端首创特性引入备受玩家喜爱的游戏中&…...

golangAPI调用deepseek

目录 1.deepseek官方API调用文档1.访问格式2.curl组装 2.go代码1. config 配置2.模型相关3.错误处理4.deepseekAPI接口实现5. 调用使用 3.响应实例 1.deepseek官方API调用文档 1.访问格式 现在我们来解析这个curl 2.curl组装 // 这是请求头要加的参数-H "Content-Type:…...

SOC芯片前端设计对芯片电源完整性的影响

在进行芯片的电源完整性时,因为PI受影响的因素较多,出现问题debug也比较难,所以在进行芯片设计时,需要端到端从前到后进行考虑设计,本篇文章将从芯片前端设计的角度来看看哪些因素会影响到PI的设计。 芯片前端设计的主…...

【区块链】零知识证明基础概念详解

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 零知识证明基础概念详解引言1. 零知识证明的定义与特性1.1 基本定义1.2 三个核心…...

面基Spring Boot项目中实用注解一

在Spring Boot项目中,实用注解根据功能可以分为多个类别。以下是常见的注解分类、示例说明及对比分析: 1. 核心配置注解 SpringBootApplication 作用:标记主启动类,组合了Configuration、EnableAutoConfiguration和ComponentScan…...

最新智能优化算法: 中华穿山甲优化( Chinese Pangolin Optimizer ,CPO)算法求解23个经典函数测试集,MATLAB代码

中华穿山甲优化( Chinese Pangolin Optimizer ,CPO)算法由GUO Zhiqing 等人提出,该算法的灵感来自中华穿山甲独特的狩猎行为,包括引诱和捕食行为。 算法流程如下: 1. 开始 设置算法参数和最大迭代次数&a…...

shell脚本备份MySQL数据库和库下表

目录 注意: 一.脚本内容 二.执行效果 三.创建定时任务 注意: 以下为对MySQL5.7.42版本数据库备份shell脚本参考运行备份的机器请确认mysqldump版本>5.7,否则备份参数--set-gtid-purgedOFF无效,考虑到一般数据库节点和备份…...

Unity Shader Graph 2D - Procedural程序化图形之渐变的正弦波形

前言 正弦波形也是一种常用、常见的程序化图形,合理的使用正弦波形会创作出一些有趣、美观和丰富的效果,本文将使用Unity Shader Graph来实现一个正弦波形效果,帮助理解和实践Unity Shader Graph以及正弦函数。 创建一个名为SineWave的Shader…...

【算法与数据结构】并查集详解+题目

目录 一,什么是并查集 二,并查集的结构 三,并查集的代码实现 1,并查集的大致结构和初始化 2,find操作 3,Union操作 4,优化 小结: 四,并查集的应用场景 省份…...

国家队出手!DeepSeek上线国家超算互联网平台!

目前,国家超算互联网平台已推出 DeepSeek – R1 模型的 1.5B、7B、8B、14B 版本,后续还会在近期更新 32B、70B 等版本。 DeepSeek太火爆了!在这个春节档,直接成了全民热议的话题。 DeepSeek也毫无悬念地干到了全球增速最快的AI应用。这几天,国内的云计算厂家都在支持Dee…...

H5接入支付宝手机网站支付并实现

小程序文档 - 支付宝文档中心 1.登录 支付宝开放平台 创建 网页/移动应用 2.填写创建应用信息 3.配置开发设置 4.网页/移动应用:需要手动上线。提交审核后,预计 1 个工作日的审核时间。详细步骤可点击查看 上线应用 。应用上线后,还需要完成…...

Win10环境借助DockerDesktop部署大数据时序数据库Apache Druid

Win10环境借助DockerDesktop部署最新版大数据时序数据库Apache Druid32.0.0 前言 大数据分析中,有一种常见的场景,那就是时序数据,简言之,数据一旦产生绝对不会修改,随着时间流逝,每个时间点都会有个新的…...

(三)Axure制作转动的唱片

效果图 属性: 图标库:iconfont-阿里巴巴矢量图标库 方形图片转为圆角图片,裁剪,然后加圆角, 唱片和底图是两个图片,点击播放,唱片在旋转。 主要是播放按钮和停止按钮,两个动态面板…...

[JVM篇]分代垃圾回收

分代垃圾回收 分代收集法是目前大部分 JVM 所采用的方法,其核心思想是根据对象存活的不同生命周期将内存划分为不同的域,一般情况下将 GC 堆划分为老生代(Tenured/Old Generation)和新生代(Young Generation)。老生代的特点是每次垃圾回收时只有少量对象…...

SpringBoot多数据源实践:基于场景的构建、实现和事务一体化研究

1. 多数据源应用场景剖析 1.1 业务驱动的多数据源需求 数据量与业务复杂度引发的分库分表:在现代企业级应用中,随着业务的不断拓展和用户量的持续增长,数据量呈爆炸式增长。例如,在大型电商平台中,用户数据、订单数据…...

鸿蒙应用开发者基础

目录 判断题 单选题 多选题 判断题 1、 在http模块中,多个请求可以使用同一个httpRequest对象,httpRequest对象可以复用。(错误) 2、订阅dataReceiverProgress响应事件是用来接收HTTP流式响应数据。(错误&#xff0…...

Java面试第二山!《计算机网络》!

在 Java 面试里,计算机网络知识是高频考点,今天就来盘点那些最容易被问到的计算机网络面试题,帮你轻松应对面试,也方便和朋友们一起探讨学习。 一、HTTP 和 HTTPS 的区别 1. 面试题呈现 HTTP 和 HTTPS 有什么区别?在…...

2025最新Java面试题大全(整理版)2000+ 面试题附答案详解

很多 Java 工程师的技术不错,但是一面试就头疼,10 次面试 9 次都是被刷,过的那次还是去了家不知名的小公司。 问题就在于:面试有技巧,而你不会把自己的能力表达给面试官。 应届生:你该如何准备简历&#…...

低空经济:开启未来空中生活的全新蓝海

引言 随着科技的进步,我们不再仅仅依赖地面交通和传统物流。你是否曾幻想过,未来的某一天,快递、外卖可以像魔法一样直接从空中送到你手中?或者,你能乘坐小型飞行器,快速穿梭于城市之间,告别拥堵…...

【机器学习】线性回归与一元线性回归

【机器学习系列】 KNN算法 KNN算法原理简介及要点 特征归一化的重要性及方式线性回归算法 线性回归与一元线性回归 线性回归模型的损失函数 多元线性回归 多项式线性回归 线性回归与一元线性回归 V1.1线性回归问题线性方程的最优解一元线性回归一元线性回归的方程一元线性回归…...

MongoDB 7 分片副本集升级方案详解(上)

#作者:任少近 文章目录 前言:Mongodb版本升级升级步骤环境1.1环境准备1.2standalone升级1.3分片、副本集升级 前言:Mongodb版本升级 在开始升级之前,请参阅 MongoDB下个版本中的兼容性变更文档,以确保您的应用程序和…...

Fiori APP配置中的Semantic object 小bug

在配置自开发程序的Fiori Tile时,需要填入Semantic Object。正常来说,是需要通过事务代码/N/UI2/SEMOBJ来提前新建的。 但是在S4 2022中,似乎存在一个bug,即无需新建也能输入自定义的Semantic Object。 如下,当我们任…...

坑多多之AC8257 i2c1 rtc-pcf8563

pcf85163 ordering information Ordering information Package Description Version Marking code PCF85163T/1 SO8 ① SOT96-1 PF85163 PCF85163TS/1 TSSOP8 ② SOT505-1 85163 ①plastic small outline package; 8 leads;body width 3.9 mm ②plastic thin…...

制作一个项目用于研究elementUI的源码

需求:修改el-tooltip的颜色,发现传递参数等方法都不太好用,也可以使用打断点的方式,但也有点麻烦,因此打算直接修改源码,把组件逻辑给修改了 第一步下载源码 源码地址 GitHub - ElemeFE/element: A Vue.j…...

Docker高级篇

1.Mysql主从复制Docker版本 mysql主从复制原理 binlog 1.新建主服务器容器实例 docker run -d -p 3307:3306 --privilegedtrue \ -v /opt/mysql8.4.3/log:/var/log/mysql \ -v /opt/mysql8.4.3/conf:/etc/mysql/conf.d \ -v /opt/mysql8.4.3/data:/var/lib/mysql \ -e MYSQL…...

OSI 参考模型和 TCP/IP 参考模型

数据通信是很复杂的,很难在一个协议中完成所有功能。因此在制定协议时经常采用的思路是将复杂的数据通信功能由若干协议分别完成,然后将这些协议按照一定的方式组织起来。最典型的是采用分层的方式来组织协议,每一层都有一套清晰明确的功能和…...

rocketmq-netty通信设计-request和response

1、NettyRemotingServer启动分析 org.apache.rocketmq.remoting.netty.NettyRemotingServer#start public void start() {this.defaultEventExecutorGroup new DefaultEventExecutorGroup(nettyServerConfig.getServerWorkerThreads(),new ThreadFactory() {private AtomicI…...

初识计算机网络

从此篇我将开始网络新篇章! 1. 网络发展史 最初的计算机之间相互独立存在,每个计算机只能持有自己的数据,数据无法共享。此时的计算机为独立模式 随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据&#x…...

kamailio常见问题解答

常见问题解答 本页面接受贡献,你必须通过注册表单创建一个用户账户: https://www.kamailio.org/wiki/start?doregister 如果你有一个适合收录进常见问题解答的问题,并且你不知道答案,那就添加这个问题,并将答案设置…...

Flask框架入门完全指南

一、初识Flask:轻量级框架的魅力 1.1 Flask框架定位 Flask作为Python最受欢迎的轻量级Web框架,以"微核心可扩展"的设计哲学著称。其核心代码仅约2000行,却支持通过扩展实现完整Web开发功能。这种设计使得开发者可以: …...

用deepseek学大模型05逻辑回归

deepseek.com:逻辑回归的目标函数,损失函数,梯度下降 标量和矩阵形式的数学推导,pytorch真实能跑的代码案例以及模型,数据,预测结果的可视化展示, 模型应用场景和优缺点,及如何改进解决及改进方法数据推导。…...

为什么要选择3D机器视觉检测

选择3D机器视觉检测的原因主要包括以下几点: 高精度测量 复杂几何形状:能够精确测量复杂的三维几何形状。 微小细节:可捕捉微小细节,适用于高精度要求的行业。全面数据获取 深度信息:提供深度信息,弥补2D视…...

CentOS上安装WordPress

在CentOS上安装WordPress是一个相对直接的过程,可以通过多种方法完成,包括使用LAMP(Linux, Apache, MySQL, PHP)栈或使用更现代的LEMP(Linux, Nginx, MySQL, PHP)栈。 我选择的是(Linux, Nginx…...

webshell通信流量分析

环境安装 Apatche2 php sudo apt install apache2 -y sudo apt install php libapache2-mod-php php-mysql -y echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php sudo ufw allow Apache Full 如果成功访问info.php&#xff0c;则环境安…...

高效高并发调度架构

以下是从架构层面为你提供的适合多核CPU、多GPU环境下API客户端、服务端高级调度&#xff0c;以实现高效并发大规模与用户交互的技术栈&#xff1a; 通信协议 gRPC&#xff1a;基于HTTP/2协议&#xff0c;具有高性能、低延迟的特点&#xff0c;支持二进制序列化&#xff08;通…...