模拟信号转数字信号大致都不陌生,模拟信号是连续性变化的信号,ADC就是把连续型信号通过线性变换,转换成相应的数字信号保存在寄存器里,MCU直接读取即可。(传感器一般是线性的数据变换)
基础知识:1. 51中PCF8591是8位ADC芯片 (I2C对SCL,SDA控制,也算方便。后面把I2C,1-wire,SPI协议都讲了,就把各个协议对比一下,使用情况也分析一下)。而STM32内是12位ADC转换,18个通道(16个外部ADC, 2个内部信号源,下面代码就是测试使用内部信号源)
2. 4种模式:单次,连续 ,扫描和间断模式执行
3. ADC的输入时钟不能超过14MHZ, 像STM32F103ZE的RCC就是72MHZ,然而使用必须分频低于14MHZ来使用(ADC转换是要时间的,它要将模拟信号转换成数字信号填入数据寄存器,如果晶振太大,精度就会受影响,后面的数据没填进去)
4. 中断源:很多外设都有中断,ADC同样有
5. 可以使用DMA, 后面会将DMA_ADC混合使用复习一下
ADC引脚:
Vref, Vdda, Vref-, Vssa 这些了解一下即可,