STM32F407 独立ADC-DMA-双通道之寄存器版本
最近自学了ADC采样实验,但是发现基本都是库函数版本的,因此就想着把自己写的寄存器版本的代码写出来,顺便复习一下。
功能
使用ADC1的通道5和通道9,采集电压,并通过串口打印出来。
开发环境
Keil uVision5编辑器
FlyMcu下载器
XCOM V2.6串口调试助手
ADC简介
时钟选择:
ADC时钟挂载在APB2总线上,可以配置ADC通用寄存器进行分频,但是注意分频后不要超过36M。
通道选择:
每个ADC有18个通道,其中外部通道有16个,可以分为2组:规则通道和注入通道。
代码编写
main.c函数如下:
extern u16 ADC_ConvertedValue[2];
float ADC_Vol[2] = {
0,0};
int main(void)
{
Stm32_Clock_Init(336,8,2,7);
delay_Init(168);
uart_Init(84,115200);
Led_Init();
Dma2_Init();
Adc1_Init();
while(1)
{
LED0 = !LED0;
ADC_Vol[0] = (float)ADC_ConvertedValue[0]/4096(float)3.3;
ADC_Vol[1] = (float)ADC_ConvertedValue[1]/4096(float)3.3