96SEO 2026-02-19 12:34 18
自然界的信号几乎都是模拟信号比如光亮、温度、压力、声音而为了方便存储、处理计算机里面都是数字的

信号将模拟信号连续信号转换为数字信号离散信号的器件就叫模数转换器(Analogto-Digital
采样是对模拟信号周期性地抽取样值使模拟信号转化为时间上离散的脉冲信号。
采样频率
指ADC能分辨的最小电压通常使用二进制有效位表示反应了ADC对输入模拟量微小变化的分辨能力。
当最大输入电压一定时位数越多量化单位越小误差越小分辨率越高。
转换时间其倒数为转换速率指ADC从控制信号到来开始到输出端得到稳定的数字信号所经历的时间。
转换时间通常与ADC类型有关。
双积分型ADC的转换时间一般为几十毫秒属于低速ADC逐次逼近型ADC的转换时间一般为几十微妙属于中速ADC并联比较型ADC的转换时间一般为几十纳秒属于高速ADC。
转换精度指ADC输出的数字量所表示的模拟值与实际输入的模拟量之间的偏差通常为1个或半个最小数字量的模拟变化量表示为1LSB或1/2LSB。
STM32F10x系列内部有三个12位逐次逼近型ADC拥有多达18个通道可测量16个外部模拟输入源和2个内部信号源的A/D转换。
每个通道的A/D转换可采用单次、连续、扫描或间断模式执行。
ADC的的转换结果为12位的二进制数可按左对齐或右对齐存储在16位数据寄存器中。
ADC具有模拟看门狗特性允许应用程序检测输入电压是否超过用户自定义的阈值上限或下限
VSSA、这四个外部引脚决定。
引脚VDDA和VSSA为专门为模拟电路设计的独立电源以过滤和屏蔽来自PCB上的毛刺和干扰。
ADC通过输入通道。
ADCx_IN0~ADCx_IN15为ADC的输入信号通道每个输入通道连接一个GPIO引脚。
需要GPIO设置为对应模拟输入的复用模式如下图为各ADC通道所对应引脚STM32F103C8T6只有ADC1和ADC2。
其中ADC1有两个内部通道通道17连接内部参考电压VREFINT通道16连接了芯片内部温度传感器
的多个通道以任意顺序进行转换就诞生了成组转换这里有两种成组转换类型
顾名思意规则通道就是很规矩的意思一般使用的就是这个通道。
最多支持16个通道在该组的ADC通道根据序列寄存器SQRx
可以理解为插入插队的意思是一种不安分的通道类似中断如果在规则通道转换过程中有注入通道插队那么就要先转换完注入通道等注入通道转换完成后再回到规则通道的转换流程最多支持4个通道。
如下图所示
JSQR控制通道顺序1~4配置方法和规则组一样当规则通道正在依次转换时
输入电压确定了转换的顺序也设置好了那接下来就该开始转换了。
A/D转换需要触发信号才能开始工作触发信号的产生方式通常有软件和外部触发。
EXTSEL[2:0]规则通道的触发源和JEXTSEL[2:0]
若ADC_CR1寄存器的EOCIE位被置1注入通道或规则通道转换结束后将产生EOC中断
若ADC_CR1寄存器的JEOCIE位被置1注入通道转换结束后将产生JEOC中断
转换的模拟电压低于低阈值或者高于高阈值时就会产生中断若ADC_CR1寄存器的AWDIE位被置1。
置高阈值是2.5V超出阈值或低于阈值将产生AWD中断。
ADC转换的结果是一个12位的二进制数而寄存器是16位的因此涉及到数据对齐问题。
ADC对齐方式有左对齐和右对齐两种通常使用右对齐方式因为数据传输一般是从最低位开始对应右边开始。
例如
16位数据寄存器数据采用右对齐方式则转换的数据范围为0~212-1即0~4095。
ADC_CR2
个这么多可规则数据寄存器只有一个如果使用多通道转换那转换的数据就全部都挤在了
模式把数据传输到内存里面不然就会造成数据的覆盖。
最常用的做法就是开启
传输。
注意不是所有ADC的规则通道组转换结束后都能产生DMA请求只有ADC1和ADC3能产生ADC2转换数据可以在双ADC模式中使用ADC1的DMA请求。
个每个通道对应着自己的寄存器不会跟规则寄存器那样产生数据覆盖的问题。
根据《参考手册》可知时钟频率最大72MHZ一般设置PCLK2HCLK72MADC可以是
分频ADC最大工作频率为14MHz所以一般用72MHz/6分频12MHz
A/D转换在采样时信号需要保持一段时间采样时间越长转换结果越稳定但转换速率也就越慢。
STM32的ADC每个通道的采样时间都可以进行设置可设置为采样周期的1.5倍、
71.5倍或239.5倍如果要达到最快的采样那么应该设置采样周期为
扫描模式用来扫描一组通道。
通道可以来自规则通道组也可来自注入通道组。
开启扫描模式后ADC将自动扫描该组所有通道如此时转换模式设置为单次转换则扫描本组所有通道后
ADC自动停止若将转换模式设置为连续模式则在扫描本组所有通道后再从第一个通道开始扫描
间断模式用来间歇转换一组通道。
通道可以来自规则通道组也可来自注入通道组。
假设该组包含0、
ADC_CHANNEL_16ADC_HandleTypeDef
hdma;/*初始化ADC1的参数触发方式、数据格式、转换模式通道配置及其采样时间*/
ADC_DATAALIGN_RIGHT;/*选择ADC采集到的数据对齐格式这里设置为右对齐*/hadc1.Init.ScanConvMode
失能ADC的扫描模式只涉及一个ADC无需对通道组进行扫描*/hadc1.Init.ContinuousConvMode
DISABLE;/*失能ADC连续转换模式不需要该ADC连续转换只采集一次*/hadc1.Init.NbrOfConversion
用于设置规则通道转换序列数因为扫描模式被禁用所以ADC只会执行单个通道的转换。
*/hadc1.Init.DiscontinuousConvMode
DISABLE;/*失能规则组转换序列的间断模式不需要间断扫描*/hadc1.Init.NbrOfDiscConversion
1;/*通道间转换次数。
在启用间断转换模式的情况下这个值表示在一个转换序列中ADC会在多少个通道之间进行转换。
在这里设定为1表示ADC会在一个通道上进行一次转换*/hadc1.Init.ExternalTrigConv
ADC_SOFTWARE_START;/*外部触发源的选择(软件触发ADC采样)*/HAL_ADC_Init(hadc1);sconfig.Channel
ADC_IN_CHANNEL;/*设置ADC模数转换器的输入通道*/sconfig.Rank
ADC_REGULAR_RANK_1;/*放在规则通道组的第一个转换位置*/sconfig.SamplingTime
ADC_SAMPLETIME_7CYCLES_5;/*采样时间*/HAL_ADC_ConfigChannel(hadc1,sconfig);HAL_ADCEx_Calibration_Start(hadc1);/*启动ADC的校准过程*/
HAL_ADC_MspInit(ADC_HandleTypeDef*
{0};/*配置的外设时钟选择为ADC外设*/PeriphClkInit.PeriphClockSelection
72MHz/612MHz*/PeriphClkInit.AdcClockSelection
RCC_ADCPCLK2_DIV6;HAL_RCCEx_PeriphCLKConfig(PeriphClkInit);if(hadc-Instance
ADC1){__HAL_RCC_ADC1_CLK_ENABLE();
{ADC_APBxClock_FUN(ADC_CLK,ENABLE);/*规则组的
输入通道,序列、采样时间这里采样时间为55.5个周期*/ADC_RegularChannelConfig(ADC1,ADC_CHANNEL,1,ADC_SampleTime_1Cycles5);ADC_InitTypeDef
ADC_InitStruct;ADC_InitStruct.ADC_Mode
ADC_Mode_Independent;/*独立模式*/ADC_InitStruct.ADC_DataAlign
ADC_DataAlign_Right;/*数据右对齐*/ADC_InitStruct.ADC_ExternalTrigConv
ADC_ExternalTrigConv_None;/*不使用外部触发内部软件触发*/ADC_InitStruct.ADC_ContinuousConvMode
DISABLE;/*连续enable或单次disable*/ADC_InitStruct.ADC_ScanConvMode
DISABLE;/*enable扫描或非扫描disable*/ADC_InitStruct.ADC_NbrOfChannel
1;/*扫描模式下用的几个通道1-16,非扫描只有序列第一个有校*/ADC_Init(ADCx,ADC_InitStruct);ADC_Cmd(ADCx,
ENABLE);/*手册建议上电后要校准*/ADC_ResetCalibration(ADCx);/*开始复位校准*/while(ADC_GetResetCalibrationStatus(ADCx));/*等待复位完成标志位,0表示复位校准完成*/ADC_StartCalibration(ADCx);/*开始校准*/while(ADC_GetCalibrationStatus(ADCx));/*完成标志位*/
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);/*adc
12mhz*/RCC_ADCCLKConfig(RCC_PCLK2_Div6);GPIO_InitTypeDef
GPIO_InitStruct;GPIO_InitStruct.GPIO_Mode
GPIO_Mode_AIN;/*模拟输入*/GPIO_InitStruct.GPIO_Pin
ADC_PIN;GPIO_InitStruct.GPIO_Speed
GPIO_Speed_50MHz;GPIO_Init(ADC_PORT,GPIO_InitStruct);ad_config();
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback