STM32F103-ADC设置
1、GPIO端口对应表
在这里插入图片描述
GPIO设置 00:模拟输入模式
2、设置ADC时钟与分频
2.1 开启时钟(ADC和GPIO)
2.2.1 RCC_APB1ENR(APB1总线外设时钟挂载)
2.2.2 RCC_APB2ENR(APB2总线外设时钟挂载)
2.2 设置ADC分频
寄存器为RCC_CFGR
理论上只能最高不能超过14MHZ
所以需要72/6=12MHZ需要6分频
RCC->CFGR |= ~(3<<14);//先清零
RCC->CFGR |= 2<<14;//
3、设置CR1
CR1寄存器
1、设置工作模式19-16,工作模式详情可看中文数据手册 11.9
2、设置扫描模式
扫描模式只在多通道的条件下有效,来使得各个通道按照配置循序依次转换。而单次模式无论在单通道还是多通道下只对这些或者这个通道进行一次转换,连续模式无论是在单通道还是多通道下都对这些或者这个通道不断进行连续的转换。
4、设置CR2
数据的左右对齐
1、设置触发方式 14:12,如果是软触发需要置位 22
2、设置数据对齐 11 右:0x4321 左:0x1234
3、设置外部触发,软件触发也必须设置
4、开启AD转换器
5、复位校准和A/D校准,设置完成并启动ADC后进行
5、设置规则通道(ADC_SQRx)
1、首先需要设置ADC_SQR1的23 - 20设置转换的通道数量
2、然后将每个需要转换的通道号码定义到响应通道;
如果只有一个通道就将需要转换的ADC通道号定义到SQR3最低3位