注册免费的网站有吗,做建设网站的活的兼职,seo免费培训教程,信息系统项目管理目录 
1.ADC是什么#xff1f; 
2.ADC的性能指标 
3.ADC特性 
4.ADC通道 
5.ADC转换顺序 
6.ADC触发方式 
7.ADC转化时间 
8.ADC转化模式 
扫描模式 
单次转换/连续转换 
9.ADC实验 
使用ADC读取烟雾传感器的值 代码实现思路#xff1a; 1.ADC是什么#xff1f; 
全称#…目录 
1.ADC是什么 
2.ADC的性能指标 
3.ADC特性 
4.ADC通道 
5.ADC转换顺序 
6.ADC触发方式 
7.ADC转化时间 
8.ADC转化模式 
扫描模式 
单次转换/连续转换 
9.ADC实验 
使用ADC读取烟雾传感器的值 代码实现思路 1.ADC是什么 
全称Analog-to-Digital Converter指模拟/数字转换器 
2.ADC的性能指标 
量程能测量的电压范围分辨率ADC能辨别的最小模拟量通常以输出二进制数的位数表示比如8、10、12、 16位等位数越多分辨率越高一般来说分辨率越高转化时间越长转化时间从转换开始到获得稳定的数字量输出所需要的时间称为转换时间 
3.ADC特性 
12位精度下转换速度可高达1MHZ供电电压V SSA 0VV DDA 2.4V~3.6VADC输入范围VREF- ≤ VIN ≤ VREF采样时间可配置采样时间越长, 转换结果相对越准确, 但是转换速度就越慢ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中 
4.ADC通道 
总共2个ADCADC1ADC2每个ADC有18个转换通道: 16个外部通道、 2个内部通道温度 传感器、内部参考电压。 
外部的16个通道在转换时又分为规则通道和注入通道其中规则通道最多有16路注入通道最多 有4路。 
规则组正常排队的人注入组有特权的人军人、孕妇 
5.ADC转换顺序 
每个ADC只有一个数据寄存器16个通道一起共用这个寄存器所以需要指定规则转换通道的转 换顺序。 
规则通道中的转换顺序由三个寄存器控制SQR1、SQR2、SQR3它们都是32位寄存器。SQR寄 存器控制着转换通道的数目和转换顺序只要在对应的寄存器位SQx中写入相应的通道这个通 道就是第x个转换。 
和规则通道转换顺序的控制一样注入通道的转换也是通过注入寄存器来控制只不过只有一个 JSQR寄存器来控制控制关系如下 注入序列的转换顺序是从JSQx[ 4 : 0 ]x4-JL[1:0]开始。只有当JL4的时候注入通道的转换 顺序才会按照JSQ1、JSQ2、JSQ3、JSQ4的顺序执行。 
6.ADC触发方式 
1. 通过向控制寄存器ADC-CR2的ADON位写1来开启转换写0停止转换。2. 也可以通过外部事件如定时器进行转换。 
7.ADC转化时间 
ADC是挂载在APB2总线PCLK2上的经过分频器得到ADC时钟ADCCLK最高 14MHz 
转换时间采样时间12.5个周期 12.5个周期是固定的一般我们设置 PCLK272M经过 ADC 预分频器能分频到最大的时钟只能 是 12M采样周期设置为 1.5 个周期算出最短的转换时间为 1.17us 14/12M 
8.ADC转化模式 
扫描模式 
关闭扫描模式只转换ADC_SQRx或ADC_JSQR选中的第一个通道打开扫描模式扫描所有被ADC_SQRx或ADC_JSQR选中的所有通道 
单次转换/连续转换 
单次转换只转换一次连续转换转换一次之后立马进行下一次转换 
9.ADC实验 
使用ADC读取烟雾传感器的值 
CubeMX配置 
时钟配置 ADC配置 串口配置 代码实现思路 
启动ADC单次转换等待ADC转换完成读取ADC转换数据重定向printf将数据发送到上位机 
核心代码示例 
#include stdio.h//重定向printf
int fputc(int ch, FILE *f)
{      unsigned char temp[1]{ch};HAL_UART_Transmit(huart1,temp,1,0xffff);  return ch;
}//main函数部分while (1){HAL_ADC_Start(hadc1);  // 启动ADC1转换HAL_ADC_PollForConversion(hadc1, 50);	// 等待ADC转换完成smoke_value  HAL_ADC_GetValue(hadc1); // 读取ADC转换数据printf(smoke_value  %f\r\n, 3.3/4096 * smoke_value);// 4096  2^12HAL_Delay(500);}