ppt,泉州关键词优化,百度推广登陆入口,网站开发参考文献2015年后STM32 CubeMX ADC采集#xff08;HAL库#xff09; STM32 CubeMX STM32 CubeMX ADC采集#xff08;HAL库#xff09;ADC介绍ADC主要特征最小识别电压值#xff1a;2.4/4096≈0.6mv#xff08;不考虑误差#xff09;一、STM32 CubeMX设置二、代码部分三#xff0c;单通道…STM32 CubeMX ADC采集HAL库 STM32 CubeMX STM32 CubeMX ADC采集HAL库ADC介绍ADC主要特征最小识别电压值2.4/4096≈0.6mv不考虑误差一、STM32 CubeMX设置二、代码部分三单通道轮询采样速度四、内部温度传感器总结 ADC介绍
12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道可测量16个外部和2个内部 信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右 对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。 ADC的输入时钟不得超过14MHz它是由PCLK2经分频产生。
ADC主要特征
● 12位分辨率最小识别电压 ● 转换结束、注入转换结束和发生模拟看门狗事件时产生中断 ● 单次和连续转换模式 ● 从通道0到通道n的自动扫描模式 ● 自校准 ● 带内嵌数据一致性的数据对齐 ● 采样间隔可以按通道分别编程 ● 规则转换和注入转换均有外部触发选项 ● 间断模式 ● 双重模式(带2个或以上ADC的器件) ● ADC转换时间 ─ STM32F103xx增强型产品时钟为56MHz时为1μs(时钟为72MHz为1.17μs) ─ STM32F101xx基本型产品时钟为28MHz时为1μs(时钟为36MHz为1.55μs) ─ STM32F102xxUSB型产品时钟为48MHz时为1.2μs ─ STM32F105xx和STM32F107xx产品时钟为56MHz时为1μs(时钟为72MHz为1.17μs) ● ADC供电要求2.4V到3.6V ● ADC输入范围VREF- ≤ VIN ≤ VREF ● 规则通道转换期间有DMA请求产生。 最小识别电压值2.4/4096≈0.6mv不考虑误差
ADC参考电压2.4V 一、STM32 CubeMX设置
开启连续扫描使能1.5采样周期 我们设置 PCLK272M经过 ADC 预分频器能分频到最大的时钟只能是 12M采样周期设置为 1.5 个周期算出最短的转换时间为 1.17us
二、代码部分
HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout);HAL_ADCEx_Calibration_Start(hadc1); //AD校准HAL_ADC_Start_IT(hadc1); //开启ADC中断转换ADC_Value HAL_ADC_GetValue(hadc1);三单通道轮询采样速度
测试方法 {adc转换时间io反转时间-io反转时间} adc转换速度 理论值上面我们设置ADC时钟12Mhz采样一次最短时间位1.17us 注释
可编程的通道采样时间TCONV 采样时间 12.5个周期
**例如**
当ADCCLK14MHz采样时间为1.5周期TCONV 1.5 12.5 14周期 **1μs**我们设置 PCLK272M经过 ADC 预分频器能分频到最大的时钟只能是 12M采样周期设置为 1.5 个周期算出最短的转换时间为 1.17us测得实际转换时间3us-0.3us2.7.us
四、内部温度传感器 HAL_ADC_Start(hadc1); //启动ADC转换HAL_ADC_PollForConversion(hadc1,10); //等待转换完成10ms表示超时时间AD_Value HAL_ADC_GetValue(hadc1); //读取ADC转换数据12位数据// HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_8);Vol_Value AD_Value*(3.3/4096); //AD值乘以分辨率即为电压值printf(ADC1_IN16 VOL value: %.2fV\r\n,Vol_Value);Temperature (1.43 - Vol_Value)/0.0043 25; //根据公式算出温度值printf(MCU Internal Temperature: %.2f\r\n,Temperature);总结
以上就是今天要讲的内容本文仅仅简单介绍了ADC的使用而ADC提供了大量能使我们快速便捷地处理数据的函数和方法。