Stm32 f103b
ADC 模/数转换器 18个通道 16个外部和2个内部信号源。可以单次、连续、扫描或间断模式执行。
通过DMA传输方式 展现ADC采集数据。
DMA 控制器提供 7 个数据通道的访问。由于外设实现了向存储器的映射,因此数据对来自或者发向外设的数据传输,也可以像内存之间的数据传输一样管理。
1.使能 ADC 、DMA时钟, 初始化ADC GPIO 引脚,并设置模拟输入模式。
RCC_AHBPeriphClockCmd(, ENABLE); //AHB总线 使能DMA bit
RCC_APB2PeriphClockCmd(, ENABLE); //APB2外设时钟使能
GPIO_Init(GPIOC, &GPIO_InitStructure);
2.配置ADC工作模式
ADC_InitStructure.ADC_Mode //双模式或独立模式选择
ADC_ScanConvMode //模数转换在单通道
ADC_ContinuousConvMode //模式转换工作在连续或单次
ADC_ExternalTrigConv //是否使用外部触发
ADC_DataAlign //数据对齐
ADC_NbrOfChannel //规定数序转换ADC 通道的数目
ADC_Init(ADC1, &ADC_InitStructure);
RCC_ADCCLKConfig //配置ADC 时钟
ADC_RegularChannelConfig //配置ADC设置它们的转化顺序和采样时间
ADC_DMACmd //使能ADC DMA请求
ADC_Cmd //使能ADC
ADC_ResetCalibration //复位校准器
ADC_StartCalibration //开始校准
ADC_GetCalibrationStatus //等待校准完成
ADC_SoftwareStartConvCmd //软件触发ADC转换
配置DMA 模式
DMA_InitStructure.DMA_PeripheralBaseAddr //DMA外设地址
DMA_InitStructure.DMA_MemoryBaseAddr //内存基地址
DMA_InitStructure.DMA_DIR //外设作为目的源还是数据源
DMA_InitStructure.DMA_BufferSize //数据大小
DMA_InitStructure.DMA_PeripheralInc //设定外设地址是否递增
DMA_InitStructure.DMA_MemoryInc //设定内存地址是否递增
DMA_InitStructure.DMA_PeripheralDataSize //设定外设数据宽度
DMA_InitStructure.DMA_MemoryDataSize //设定内存数据宽度
DMA_InitStructure.DMA_Mode //设定工作模式
DMA_InitStructure.DMA_Priority //设置优先级
DMA_InitStructure.DMA_M2M //使能内存道内存
DMA_Init(DMA1_Channel1, &DMA_InitStructure); //初始化 DMA
DMA_Cmd(DMA1_Channel1, ENABLE); //使能 DMA
阅读(2506) | 评论(0) | 转发(0) |