第三章:STM32CUBEIDE工程下的ADC DMA配置
简述
??本章主要是讲解了STM32的ADC DMA的使用。
1、芯片选型&创建工程
这里我选择的是STM32F103CC8T6芯片。 配置工程名点击finish
2、芯片工程配置
这里我们主要是在.ioc文件里面进行图形界面配置
1)配置系统外部晶振&仿真引脚配置
①在Pinout&Configuration下配置系统的时钟为外部输入时钟 ②在Clock Configuration下配置主频时钟为72兆如图
③配置仿真脚这里我们能配置的是JTAG脚(不配置无法仿真运行)
2)配置ADC
这里我们配置PA1、PA2为 ADC1的通道1和2。配置如图 参数配置(Parameter Settings)如图 这里因为我们使用了两个ADC通道所以选了两路ADC转换分别是通道1和通道2,打开持续转换模式这样的作用是ADC不停的在转换,如果选择DISABLE则转换只会进行一次。
DMA配置如图
这里配置了ADC的DMA模式为循环装载模式,,传输的数据是半字节传输。 因为配置了ADC,时钟发生了变化。这里我们直接点 YES系统会选择最优的方案去配置。
配置生成的单独的.C.H文件 生成代码
3、调试&仿真
这里我们需要调用底层HAL库的函数 HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length) 有三个传入参数分别是 ADC结构体 存放采样值的数组 数组大小
加入以下代码ADC就可以实现自动采集。ADC会先采集通道2再采集通道1循环采集,adc_value[2n] 则为通道1的值,adc_value[2n + 1] 则为通道2的值。
/* USER CODE BEGIN PTD */
unsigned short adc_value[20] = {0};
/* USER CODE END PTD */
/* USER CODE BEGIN 2 */
HAL_ADC_Start_DMA(&hadc1,(void *)adc_value,sizeof(adc_value) / sizeof(*adc_value));
/* USER CODE END 2 */
点击调试配置仿真器 这里我们配置的是JLINK JTAG模式 然后就可以仿真 运行了
4、总结
这样ADC DMA配置就完成了!~~~ 如有什么不懂联系加QQ群:1063618791
|