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

STM32_ADC_模数转换器

文章目录一、ADC简介二、 逐次逼近型ADC三、STM32ADC框图四、 ADC基本结构图五、 输入通道六、规则组的4种转换模式1、单次转换、非扫描模式2、连续转换、非扫描模式3、单次转换、扫描模式4、连续转换、扫描模式5、触发控制6、数据对齐7、转换时间8、校准9、硬件电路一、ADC简介ADCANalog-Digital Converter模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转化为内存中存储的数字变量建立模拟电路到数字电路的桥梁12为逐次逼近型ADC1us的转换时间转换频率为1MHZ输入电压范围0~3.3V,转换结果范围0 ~ 4095;STM32F1系列单片机 最多有18个输入通道最多可以测量16个外部GPIO口和两个内部信号源内部温度、内部基准电压该电压是不随外部供电电压的变化而变化的当外部供电不是标准的3.3v可以使用这个参考电压 STM32F1系列单片机的规则组和注入组两个转换单元普通AD转换流程是启动一次转换就读取一次值循环往复操作STM32可以一次性启动一个组连续转换多个值模拟看门狗自动检测输入电压范围模拟看门狗可以检测指定某些通道当AD值高于它设定的上阈值或者低于下阈值时就会申请中断此时可以在中断函数里执行相应的操作二、 逐次逼近型ADC地址锁存和译码详单与一个数据选择器ADDA、ADDB、ADDC用于控制八路INx信号的输入ALE是一个锁存信号信号通路配置完成后会经过电压比较器电压比较器可以判断两个输入信号电压的大小这里比较电压是DAC数模转换器的输出端数模转换器DAC的作用是给定一个数值它可以输出对应的电压DAC的内部是通过加权电阻网络实现的当DAC输出的电压比较大就调小DAC数据反之就增大DAC数据直到DAC数据和输入电压数据近似相等比较过程可以采用2分法来实现假如ADC的数值是0~255每次使用2分法比较的数可以为128、64、32…对应二进制数的位权也就是说比较过程相当于对二进制数从高位到地位判断是0还是1的过程对于8位的ADC从高位到低位依次判断8次就可以找到未知电压的编码了而对于STM32F1系列的单片机由于其ADC是12位则需要依次判断12位才可以得到未知电压的编码ADC转换结束后输出得到的数值存储到地址锁存器其中地址锁存器对于8位的ADC就是8位的对于12位ADC就是12位的EOFEnd Of Convert转换结束信号START开始转换给一个输入脉冲开始转换CLOCK是ADC时钟因为ADC内部是一步一步进行判断的需要时钟来推动这个过程VREF与VREF-是DAC的参考电压比如给定一个数值255是对应5V还是3.3v由参考电压决定DAC的参考电压也决定了ADC的输入范围所以这个电压也是ADC的参考电压VCC是整个芯片电路的供电通常参考电压的正极和VCC是接在一起的参考电压的负极VREF-和GND是接在一起的三、STM32ADC框图左边是ADC的输入通道包括16个GPIO口IN0~IN15 和两个内部二点通道一个是内部温度传感器另一个是VREFINTV Reference Internal内部参考电压总共是18个输入通道然后到达模拟多路开关可以指定我们想要选则的通道右边是多路开关的输出进入到模数转换器。这里模数转换器就是执行刚刚上面讲的逐次比较的过程。转换结果会直接放在数据寄存器里我们读取寄存器就能直到ADC转换的结果了。对于普通的ADC多路开关一般是只选中1个的就是选中某个通道、开始转换、等待转换完成、取出结果、这是普通的流程。但是STM32上就比较高级了它可以同时选中多个而且在转换的时候还分成了两个组规则通道组和注入通道组其中规则组可以一次性最多选择中16个通道注入组最多可以选中4个通道。这有什么作用呢举个例子就像是去餐厅点菜、普通的ADC是指定一个菜老板做完后送给自己这里就是指定一个菜单这个菜单最多可以填16个菜老板按照菜单的顺序依次做好一次性端上来这样就大大提高效率当然菜单也可以只写一个菜就简化成普通的模式了。对于这个菜单也有两种1种是规则组可以同时上16个菜但是有个尴尬的地方就是规则组只有一个数据寄存器就是这个桌子比较小只能放一个菜如果上16个菜前15个菜就会被挤掉。所以对于规则组来说如果使用这个菜单的话最好配合DMA来实现。DMA是一个数据转运小帮手它可以在每上一个菜之后把这个菜挪到其它地方去防止被覆盖。规则组虽然可以同时转换16个通道但是数据寄存器只能存一个结果如果不想之前的结果被覆盖那就转换完成之后要尽快把结果拿走。注入组这个组就比较高级相当于是餐厅的VIP座位在这个座位上一次性最多可以点4个菜并且数据寄存器有4个是可以同时上4个菜的对于注入组而言就不用担心数据覆盖的问题了。这就是规则组和注入组的介绍。一般情况下使用规则组就完全足够了如果要使用规则组的菜单那就再配合DMA转运数据。模数转换器外围电路左下角是触发转换的部分也就是ADC0809的START。对于STM32的ADC触发ADC开始转换的信号有两种一种是软件触发就是再程序中手动调用一条代码就可以启动转换了另一种是硬件触发就是左下角的触发源。上面是注入组的触发源下面是规则组的触发源这些触发源主要是来自定时器有定时器的各个通道还有TRGO定时器主模式的输出。之前讲定时器的时候也介绍过定时器可以通过ADC、DAC这些外设用于触发转换。那因为ADC经常要过一个固定时间段转换一次比如每隔1ms转换一次正常的思路就是用定时器每隔1ms申请1次中断在中断里手动开始一次转换这样也是可以的。但是频繁进中断对程序是有一定影响的比如有很多中断都需要频繁进入肯定会影响主程序的执行并且不同中断之间由于优先级的不同也会导致某些中断不能及时得到响应如果触发ADC的中断不能及时响应那我们ADC的转换频率就肯定会产生影响了所以对于这种需要频繁进中断并且在中断里只完成了简单工作的情况一般都会有硬件的支持。比如这里就可以给TIM3定一个1ms的时间并且把TIM3的更新事件选择位TRGO输出然后在ADC这里选择开始触发信号为TIM3的TRGO这样TIM3的更新事件就能通过硬件自动触发ADC转换了整个过程不需要进中断节省了中断资源。这就是这里定时器触发的作用。当然这里还可以选择外部中断引脚来触发转换都可以在程序中配置这就是触发转换的部分。左上角是VREF、VREF-、VDDA和VSSA上面两个是ADC的参考电压决定了ADC输入电压的范围下面两个是ADC的供电引脚一般情况下VREF要接VDDA、VREF-要接VSSA在这款芯片上没有VREF和VREF-的引脚它在内部就已经和VDDA和VSSA接在一起了。VDDA和VSSA在引脚定义里就可以看到。VDDA和VSSA是内部模拟部分的电源比如ADC、RC振荡器、锁相环等等在这里VDDA接3.3V、VSSA接GND、所以ADC的输入电压范围就是0~3.3V。右边ADCCLK是ADC的时钟也就是ADC0809上的CLOCK是用于驱动内部逐次比较的时钟。这个是来自ADC预分频器这个ADC预分频器是来源于RCC的。如下图RCC时钟树框图所示APB272MHz通过预分频器进行分频得到ADCCLKADCCLK最大是14MHz所以这个预分频器就有点尴尬它可以选择2、4、6、8分频如果选择2分频72M/236M超出允许范围了4分频之后是18M也超了所以对于ADC预分频器只能选择6分频结果是12M和8分频、结果是9M这两个值。DMA请求是用于触发DMA进行数据转运的。两个数据寄存器是用于存放转换结果的上面还有一个模拟看门狗里面可以存一个阈值高限和阈值低限如果启动了模拟看门狗并指定了看门的通道那这个看门狗就会关注它看门的通道、一旦超过这个阈值范围了它就会乱叫就会在上面申请一个模拟看门狗的中断最后通向NVIC。然后对于规则组和注入组而言它们转换完成后也会有一个EOC转换完成的信号在这里EOC是规则组的完成信号JEOC是注入组完成的信号这两个信号会在状态寄存器里置一个标志位读取这个标志位就能知道是不是转换结束了同时这两个标志位也可以去到NVIC申请中断如果开启了NVIC对应的通道它们就会触发中断。四、 ADC基本结构图左边是输入通道16个GPIO口、外加两个内部的通道然后进入AD转换器、AD转换器里有两个组、一个是规则组、一个是注入组。规则组最多可以选中16个通道、注入组最多可以选择4个通道然后转换的结果可以存放在AD数据寄存器里其中规则组只有一个数据寄存器注入组有4个下面有触发控制、提供了开始转换这个START信号触发控制可以选择软件触发和硬件触发硬件触发主要来自于定时器当然也可以选择外部中断的引脚。右边是来自RCC的ADC时钟CLOCKADC逐次比较的过程就是由这个时钟推动的。然后上面可以布置一个模拟看门狗用于监测转换结果的范围如果超出设定的阈值就通过中断输出控制向NVIC申请中断另外、规则组和注入组转换完成后会有个EOC信号它会置一个标志位当然也可以通向NVIC。最后右下角还有一个开关控制在库函数种就是ADC_Cmd函数用于给ADC上电的。五、 输入通道总共有18个通道、通道16对应ADC1的温度传感器通道17对应ADC1的内部参考电压。我们使用的这款芯片没有ADC3这颗芯片也没有PC0到PC5。上表从引脚定义表也可以看出来下图所示ADC12_IN0的意思是ADC1和ADC2的IN0都是在PA0上的。而且下面也是全都是ADC12这说明ADC1和ADC2的引脚全都是相同的既然都相同ADC2还有啥用呢这就是因为ADC的另一个高级功能了就是双ADC模式这个模式比较复杂双ADC模式就是ADC1和ADC2一起工作它两可以配合组成同步模式、交叉模式等等模式比如交叉模式、ADC1和ADC2交叉地对一个通道进行采样这样就可以进一步提高采样率。就像打拳一样左手一拳右手一拳快速交叉地打拳打击地频率就比一个拳头快。这就是ADC1和ADC2配合使用的双ADC模式了。ADC1和ADC2也是可以分开使用的可以分别对不同的引脚进行采样也是可以的。六、规则组的4种转换模式在ADC初始化的结构体里会有两个参数一个是选择单次转换还是连续转换的另一个是选择扫描模式还是非扫描模式的。这两个参数组合就是以下4种转换方式。1、单次转换、非扫描模式上图所示列表相当于规则组里的菜单可以在这里“点菜”就是写入要转换的通道在非扫描的模式下这个菜单就只有第一个序列1的位置有效这是菜单同时选中1组的方式就退化为简单地选中一个的方式了在这里我们可以在序列1的位置指定我们想要转换的通道比如通道2然后就可以触发转换ADC就会对这个通道2进行模数转换过一小段时间后转换完成转换结果放在数据寄存器里同时给ROC标志位置1整个转换过程就结束了。我们判断这个EOC标志位如果转换完了那我们就可以在数据寄存器里读取结果了如果想再启动一次转换就需要再触发一次转换结束置EOC标志位读结果。如果想换一个通道转换那在转换之前把第一个位置的通道2改成其它通道然后再启动转换就行了。2、连续转换、非扫描模式还是非扫描模式所以菜单列表只选择一个。与单次转换不同的是在一次转换后不会停止而是立刻开始下一轮的转换然后一直持续下去。这样就可以只需要最开始触发一次之后就可以一直转换了。这个模式的好处就是开始转换之后不需要等待一段时间的因为它一直都在转换所以就不需要手动开始转换了也不用判断是否结束的想要读AD值的时候直接从数据寄存器取就是了。3、单次转换、扫描模式这个模式也是单次转换所以每转换一次转换结束后就会停下来 下次转换就得再触发才能开始然后它是扫描模式这就会用到菜单列表了可以在菜单里点菜比如第一道是通道2第二道是通道5等等这里每个位置是通道几可以任意指定并且也是可以重复的然后初始化结构体里还会有个参数就是通道数目因为这16个位置可以不用完只用前几个那就需要再给一个通道数目的参数高速它我有几个通道比如这里指定通道数目为7那它就只看前7个位置。然后每次触发之后就依次对这前7个位置进行AD转换转换结果都放在数据寄存器里这里为了放在之数据被覆盖就需要用DMA及时讲数据挪走那7个通道转换完成之后产生EOC信号转换结束然后再触发下一次就又开始新一轮的转换。4、连续转换、扫描模式在扫描模式的情况下还可以有另一种模式叫间断模式它的作用是在扫描的过程中每隔几个转换就暂停一次需要再次触发才能继续。5、触发控制上图是规则组的触发源 也就是下图标注部分。有来自定时器的信号还有来自外部引脚或定时器的信号这个具体是引脚还是定时器需要用AFIO重映射来确定最后是软件控制位也就是我们之前说的软件触发这些触发信号的选择可以通过设置右边所示的寄存器来完成使用库函数的话直接给一个参数就可以了。6、数据对齐我们这个ADC是12位的它的转换结果就是一个12位的数据但是这个数据寄存器是16位的所以就存在一个数据对齐的问题。一般使用数据右对齐这样读取的16位寄存器直接就是转换结果。选择左对齐得到的结果会比实际的大因为数据左对齐就是把数据左移了4次。二进制有个特点就是数据左移一次就等效于把这个数据乘2左移4次就相当于把结果乘16了直接读的话会比实际值大16倍。左对齐的作用就是如果不想要这么右对齐这么高的分辨率觉得0~4095数太大了就做个简单的判断不需要这么高分辨率就可以选择左对齐然后再把这个数据的高8位取出来这样就舍弃了后面4个精度这样12位的ADC就退化成了8位的ADC了。数据右对齐数据左对齐7、转换时间转换时间这个参数一般不太敏感因为一般AD转换都很快若果不需要非常高速的转换频率那转换时间就可以忽略了。AD转换是需要一小段时间的。AD转换的步骤采样保持量化编码采样保持可以放在一起量化编码可以放在一起总共是这两大步。量化编码就是之前讲过的ADC逐次比较的过程这个是需要花一段时间的一般位数越多花的时间就越长采样保持这是因为AD转换就是后面的量化编码需要一小段时间的如果在这一小段时间里输入的电压还在不断变化、那就没办法定位输入电压到底是在哪里了所以在量化编码之需要设置一个采样开关先打开采样开关收集一下外部的电压比如可以用一个小容量的电容存储一下这个电压存储好了之后断开采样开关再进行后面的AD转换这样在量化编码期间电压始终保持不变这样才能精确定位未知电压的位置这就是采样保持电路。采样保持的过程需要闭合采样开关、过一段时间再断开这里就会产生一个采样时间。STM32 ADC的总转换时间为TCONV 采样时间 12.5个ADC周期采样时间就是采样保持花费的时间这个时间可以在程序中进行配置采样时间越大越能避免一些毛刺信号的干扰不过转换时间也会相应延长。12.5个ADC周期是量化编码所花费的时间因为是12位的ADC所以需要花费12个ADC这里多半个周期可能是做一些其它东西花的时间。ADC周期就是从RCC分频过来的ADCCLK这个ADCCLK最大是14MHz。例如当ADCCLK14MHz采样时间为1.5个ADC周期TCONV 1.5 12.5 14个ADC周期 1μs这就是最快1us时间的来源如若过采样周期再长一些它就达不到1us了。 也可以把ADCCLK的时钟设置超过14MHz这样ADC就是在超频了那转换时间可以比1us还短不过这样稳定性就没办法保证了。8、校准ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。校准期间在每个电容器上都会计算出一个误差修正码(数字值)这个码用于消除在随后的转换中每个电容器上产生的误差。建议在每次上电后执行一次校准。启动校准前 ADC必须处于关电状态超过至少两个ADC时钟周期。这个校准过程是固定的我们只需要在ADC初始化的最后加几条代码就行了。9、硬件电路如何设计ADC的外围电路上图第1个是电位器产生1个可调的电压这里电位器的两个固定端、一端接3.3V、另一端接GND这样中间的滑动段就可以输出一个0~3.3V可调的电压输出了。右边可以接ADC的输入通道比如PA0口当滑动端往上滑时电压增大往下滑时电压减小。注意电阻的阻值不要给太小因为这个电阻两端也是直接跨接在电源正负极的如果阻值太小这个电阻就会比较费电再小就有可能发热冒烟了。一般至少要接KΩ级的电阻比如这里接的10K的电阻。第2个是传感器产生输出电压的电路一般来说像光敏电阻、热敏电阻、红外接收管、麦克风等等。都可以等效为一个可变电阻电阻值没办法直接测量所以可以通过和一个固定电阻串联分压来得到一个反应电阻值电压的电路这里传感器阻值变小时下拉作用强输出电压就下降传感器阻值变大时下拉作用变弱输出端受上拉电阻的作用电压就会升高。这个固定电阻一般可选择和传感器阻值相近的电阻这样可以得到一个位于中间电压区域比较好的输出。传感器和固定电阻的位置也可以缓过来这样输出电压的极性就反过来了。第3个电路是一个简单的电压转换电路比如想要测一个05V的VIN电压但是ADC只能接收03.3V的电压就可以搭建这样的简易转换电路。在这里还是使用电阻进行分压上面阻值17K下面阻值33K加一起50K中间的电压就是0~3.3V就可以进入ADC转换了。如果采集的是5V、10V就可以采用这个电路1了。比这个还高就不能使用了高电压采集最好还是使用一些专用的采集芯片比如隔离放大器等等做好高低电压的隔离保证电路的安全。

相关文章:

STM32_ADC_模数转换器

文章目录一、ADC简介二、 逐次逼近型ADC三、STM32ADC框图四、 ADC基本结构图五、 输入通道六、规则组的4种转换模式   1、单次转换、非扫描模式   2、连续转换、非扫描模式   3、单次转换、扫描模式   4、连续转换、扫描模式   5、触发控制   6、数据对齐   7、转…...

将AI主权还给你:GPT4All开源生态,在个人电脑上私密运行千款大模型

GPT4All:重塑AI访问民主化的开源生态系统在云计算主导的AI时代,GPT4All以其“完全本地化”的理念,将大模型的掌控权从云端巨头手中交还给每一位普通用户,开启了隐私安全、成本可控的AI应用新范式。当OpenAI发布GPT-4却未公开其技术…...

5.4.3 通信->WWW万维网内容访问标准(W3C):WWW(World Wide Web) 协议架构(分层)

WWW 本身不是网络底层协议,而是基于 TCP/IP 协议栈构建的应用层分布式超文本系统,其协议架构采用清晰的分层模型,通常从底层网络 → 传输 → Web 应用自上而下分为四层,同时配套支撑体系形成完整架构 WWW 标准分层架构&#xff08…...

基于SpringBoot+Vue的健康医院门诊在线挂号系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】

摘要 随着信息技术的快速发展,传统医疗行业的服务模式正逐步向数字化、智能化方向转型。医院门诊挂号作为医疗服务的重要环节,其效率直接影响患者的就医体验。传统线下挂号方式存在排队时间长、信息不对称、资源分配不均等问题,亟需通过信息化…...

SEO_掌握这七个SEO技巧,让你的流量持续增长

SEO技巧一:优化网站的关键词在当今互联网时代,网站的关键词优化是提升网站流量的重要手段之一。我们需要明确什么是关键词。关键词是用户在搜索引擎中输入的词语,用以查找相关信息的关键字。如果你的网站能够在这些关键词的搜索结果中排名靠前…...

SEO_10个提升网站排名的实用SEO技巧分享(470 )

SEO: 10个提升网站排名的实用技巧分享在当今数字化时代,搜索引擎优化(SEO)成为了每一个网站主人的首要任务。特别是对于想要在百度上获得高排名的网站而言,SEO技巧的掌握至关重要。本文将分享十个实用的SEO技巧,帮助你…...

# 发散创新:用Python打造自动化渗透测试工具链——从扫描到漏洞利用全流程实战在现代信息安全

发散创新:用Python打造自动化渗透测试工具链——从扫描到漏洞利用全流程实战 在现代信息安全攻防对抗中,快速、精准、可扩展的渗透测试能力已成为红队和安全研究人员的核心竞争力。本文将带你基于 Python 编写一个轻量级但功能完整的自动化渗透测试工具链…...

AudioLDM-S生成效果实测对比:10步和50步有什么区别?听音频就知道

AudioLDM-S生成效果实测对比:10步和50步有什么区别?听音频就知道 1. 一个参数,两种世界 如果你用过AI生成图片,一定知道“采样步数”这个参数。调高它,画面细节会更丰富,但生成时间也变长。在音频生成的世…...

SEO_如何通过内容优化有效提升SEO效果?(143 )

如何通过内容优化有效提升SEO效果?在当今互联网时代,搜索引擎优化(SEO)已经成为任何网站或博客成功的关键因素之一。SEO不仅仅是关于关键词排名,更是关于如何通过内容优化来提升SEO效果。如何通过内容优化有效提升SEO效…...

网络安全测评逻辑拓扑即学即会(二)

一、边框画法1.在“开始”栏“指针工具”右侧的形状中选择矩形。2.右键矩形框,依次选择“样式-填充-无填充”和“样式-线条-虚线”。3.移动鼠标在虚线框出现十字箭头时双击可以添加文字描述,通过“开始-段落”左侧半部分可以调整文字在虚线框里的位置。二…...

医学影像分割的‘注意力’该怎么加?从CVPR‘25论文MCADS,聊聊通道与空间注意力(CASAB)的实战设计心得

医学影像分割中的注意力机制实战:从MCADS论文看CASAB模块的设计哲学 当你在显微镜下观察一张病理切片时,那些看似杂乱的细胞排列其实隐藏着疾病诊断的关键线索。但要让AI模型像经验丰富的病理学家一样,准确识别出这些生物标志物的边界&#x…...

完整版:本地电脑 + WiFi 搭建 AI 自动炒股 + 自我学习系统

一、这套 AI 到底怎么 “学习赚钱”?(先讲逻辑,一看就懂) 核心逻辑:交易 → 记录 → 复盘 → 改错 → 优化策略 → 下次更赚钱 AI 的学习分为 4 层自动进化: 记住历史:每一笔买卖都记录&#…...

Shell脚本实战:5分钟搞定SFTP文件自动上传(含参数详解)

Shell脚本实战:5分钟搞定SFTP文件自动上传(含参数详解) 每次手动上传文件到远程服务器时,重复输入命令和密码的繁琐操作是否让您感到效率低下?本文将带您快速构建一个高可靠性的SFTP自动上传脚本,解决日常开…...

Qwen3-Reranker-4B在新闻推荐系统中的应用

Qwen3-Reranker-4B在新闻推荐系统中的应用 1. 新闻推荐的痛点:为什么传统方法不够用了 每天早上打开手机,你可能已经习惯了刷到一堆标题党新闻——“震惊!”“速看!”“最后一条”……这些内容看似热闹,但仔细一看&a…...

GitHub热门C语言开源项目:嵌入式与系统开发实用指南

GitHub 上热门 C 语言开源项目深度解析:嵌入式与系统级开发者的实用工具集在嵌入式系统、Linux 内核开发、物联网中间件及高性能服务构建等工程实践中,C 语言仍是最具确定性、可预测性与资源可控性的核心实现语言。尽管高级语言生态日益繁荣,…...

vue3基于springboot+nodejs的智慧社区活动商品管理系统的设计与实现

目录技术栈选择前端实现模块后端实现要点数据库设计部署方案测试策略关键风险应对项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术栈选择 前端采用Vue3 TypeScript Element Plus/Pinia构建响应式单页应用,后端…...

2026大专电子商务就业压力大吗?

2026年大专电子商务专业就业压力分析电子商务行业近年来发展迅速,但随着市场竞争加剧,大专学历的电子商务专业毕业生可能面临一定的就业压力。以下是详细分析,包含行业趋势、就业方向、提升竞争力的方法等,并重点介绍CDA数据分析师…...

C语言高效哈希实践——uthash核心功能解析

1. 为什么需要uthash? 在C语言标准库中,并没有内置的哈希表实现。当我们需要处理键值对数据时,通常只能选择数组或链表这些基础数据结构。但在数据量较大时,它们的查找效率会直线下降——数组需要遍历,链表更是需要O(n…...

Vue3+springboot+nodejs的显卡之家 二手显卡商城交易系统 开题

目录技术栈选型与分工核心功能模块开发里程碑计划风险与应对项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术栈选型与分工 Vue3:负责前端用户界面构建,采用Composition API提升代码复用性&#xff0…...

模型部署需要考虑的性能指标和模型部署的步骤

文章目录模型性能相关性能指标roofline model注意点模型部署相关量化量化里重要的细节量化映射粒度校准PTQQAT模型性能相关 性能指标 可以分为Memory bandwidth和compute bandwidth 模型里面优化目标是让计算峰值靠近compute bandwidth,让吞吐量靠近Memory bandw…...

Qwen-Image-Edit-F2P与SpringBoot集成:构建人脸生成图像的Web应用

Qwen-Image-Edit-F2P与SpringBoot集成:构建人脸生成图像的Web应用 1. 引言 想象一下这样的场景:你有一张普通的人脸照片,想要生成一张精美的全身照,可能是穿着礼服站在巴黎街头,或者是穿着古装站在古典长廊中。传统方…...

基于微信平台的“快一点”外送系统的设计与实现

目录 可选框架 可选语言 内容 可选框架 J2EE、MVC、vue3、spring、springmvc、mybatis、SSH、SpringBoot、SSM、django 可选语言 java、web、PHP、asp.net、javaweb、C#、python、 HTML5、jsp、ajax、vue3 内容 随着移动用户端的普及,微信因为其简单&#x…...

FastJson JSONPath 路径取值用法与场景总结

FastJson JSONPath 路径取值用法与场景总结 前言 在日常后端开发中,我们经常需要解析第三方接口返回的 JSON 数据。 传统方式需要一层层 getJSONObject()、getString(),代码繁琐、可读性差、维护成本高。 FastJson 提供的 JSONPath 可以通过路径表达式直…...

解决PyTorch 2.6兼容性问题:YOLOv8部署避坑指南

解决PyTorch 2.6兼容性问题:YOLOv8部署避坑指南 最近升级到PyTorch 2.6,准备部署YOLOv8模型时,是不是遇到了各种奇怪的报错?模型加载失败、推理速度变慢,甚至直接崩溃退出。这些问题看似复杂,其实大多源于…...

黑丝空姐-造相Z-Turbo实战体验:输入文字秒出图片,效果惊艳

黑丝空姐-造相Z-Turbo实战体验:输入文字秒出图片,效果惊艳 1. 初识黑丝空姐-造相Z-Turbo 1.1 什么是黑丝空姐-造相Z-Turbo 黑丝空姐-造相Z-Turbo是一款基于Xinference部署的文生图模型服务,它能够根据用户输入的文字描述,快速生…...

TIM+PWM输出+输入捕获测 频率+占空比(HAL库)

一:PWM输出(TIM2_CH1)HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);二:输入捕获测(TIM1 CH1CH2)三:开启CH1和CH2的中断四:初始化中断HAL_TIM_IC_Start_IT(&htim1,TIM_CHANNEL_1…...

Mirage Flow与STM32CubeMX集成开发:自动化代码生成与模型调用

Mirage Flow与STM32CubeMX集成开发:自动化代码生成与模型调用 最近在做一个智能家居的语音控制项目,需要在STM32单片机上跑一个简单的语音唤醒模型。一开始,光是硬件初始化、外设配置、内存管理这些底层代码就让我头疼不已,更别提…...

数据库课程设计实战:构建一个基于Youtu-Parsing的学术文献管理系统

数据库课程设计实战:构建一个基于Youtu-Parsing的学术文献管理系统 又到了学期末,计算机专业的同学们是不是又在为数据库课程设计发愁?想做一个既有技术含量,又能真正解决实际问题的项目,而不是简单的“学生-课程-成绩…...

Windows server2012R2 网络负载平衡(NLB)2026最新版(超详细)!!!

最近在做负载均衡,其实一开始挺羡慕 Linux 那一套的。 像 Keepalived + LVS,配起来既优雅又成熟,很多高可用方案都是这么玩的。 但现实是,公司这边是 Windows 体系,只能用自带的 NLB 来搞。 于是我用 NLB + IIS 搭了一套集群,本来以为很简单,结果各种诡异问题,后面我…...

超大规模智算集群关键技术及工程落地研究报告

摘要:本报告系统分析超大规模智算集群的核心技术、工程落地路径与产业趋势,为行业从业者与投资者提供核心指引。作为AI大模型与数字经济的核心算力底座,其以算存网协同、高密度部署、全栈工程化技术为核心,破解互联效率、调度优化…...