蓝桥杯嵌入式G431(hal库)——ADC采集

        前言:

        ADC,即模数转换器,是一种将模拟信号转换成数字信号的电路。ADC采集是指将模拟信号转换成数字信号的过程,其中ADC芯片负责将模拟信号转换成数字信号,同时需要传感器、放大器、滤波器等辅助电路对模拟信号进行前置处理。

ADC采集过程包括取样、量化和编码3个过程:

  1. 取样:将连续的模拟信号转换为离散的模拟信号,即在特定的时间间隔内,对模拟信号进行采样得到离散的样本值。

  2. 量化:将连续的模拟信号转换为离散的数字信号,量化是将采样得到的离散信号按照一定的规律进行分段,每一段对应一个数字量,从而将连续信号转换为离散的数字信号。

  3. 编码:将采样和量化后得到的数字信号进行编码,以便于存储和传输。编码可以采用二进制补码编码、格雷码编码等方式进行。

ADC采集过程中需要注意以下几点:

  1. 采样频率应根据被采集信号的最高频率进行选择,过低的采样率会导致信号失真。

  2. 量化精度越高,数字信号的质量越好,但是时间和空间成本也会随之增加。

         CUBEMX配置:

 

         使能ADC通道,修改时钟分频系数,设置采样时间,通道,采用软件触发,多通道扫描不循环。其它部分,不做修改。

        代码部分:

	HAL_ADC_Start(&hadc2);
	adc1=HAL_ADC_GetValue(&hadc2);
	HAL_Delay(1);
	adc2=HAL_ADC_GetValue(&hadc2);

        多通道采集,校准函数用了和没用没啥太大差别。

        校准函数如下:

HAL_ADCEx_Calibration_GetValue(&hadc2,ADC_SINGLE_ENDED);

        使用如下:

char chProc[21];
sprintf(chProc,(const char *)"V1=%.2f,V2=%.2f",adc1*3.3/4096,adc2*3.3/4096);
LCD_DisplayStringLine(Line2,(u8 *)chProc);

        将ADC采样的数字量转换为对应的模拟电压值时,需要将采集值乘上电压基准(一般是开发板中的供电电压),然后将结果除以2的n次方,其中n为ADC采样分辨率。因为ADC采样取值范围为0到2的n次方-1,所以在电压转换时要除以2的n次方来得到对应的电压值。

        蓝桥杯的ADC采样分辨率为12位,即n=12,开发板供电通常为3.3V。因此,针对ADC采集到的数字量,我们需要将其乘上3.3V(电压基准)并将结果除以2的12次方,即4096(采样分辨率),才能得到对应的模拟电压值。

        例如,如果ADC采集到的数字量为2048,那么它对应的模拟电压值即为:2048 * 3.3 / 4096 = 1.65V。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值