STM32CubeMX学习:ADC配置实战

文章目录

  • 前言
  • 一、本地环境
  • 二、开始
  • 1.定时器配置
  • 2.引脚配置![在这里插入图片描述](https://i3.wp.com/img-blog.csdnimg.cn/e5b6f155a1b8468cb15046a0a9d031cd.png)
  • 3.内部时钟配置
  • 4.ADC参数配置
  • 4.代码生成
  • 3.编译工程
  • 4.添加功能代码
  • 4.ADC的DMA配置

  • 前言

    记录一下STM32CubeMX的学习笔记,同时分享给初学的小白,希望一起进步。
    如何使用STM32CubeMX以及工程创建在之前的博客有提到,这里就直接从ADC配置讲起。


    一、本地环境

    编译环境:KEIL
    代码生成:STM32CubeMX
    库:HAL
    MCU:STM32F072

    二、开始

    1.定时器配置

    假设你的cubeMX工程已经建好,这里我们开始配置ADC引脚(PA1设置为ADC_IN1)如图所示:

    2.引脚配置

    3.内部时钟配置

    配置完GPIO后开始配置时钟,我这里配置的是内部时钟,配置的24Mhz的内部时钟(HSI)如图:

    4.ADC参数配置

    选择Analog下的ADC配置,再选择通道IN1进行配置。
    ADC配置:
    1、Clock Prescaler 时钟频率
    2、Resolution 数据宽度
    3、Data Alignment 数据对齐方式
    4、Scan Conversion Mode 扫描转换模式
    5、Sampling Time 采集周期
    基本配置以上5个参数就可以满足需求了,其他的可自行觉得配置,如图是我所配置的,。

    adc转换时间越长采集越精确,可根据实际需求配置。

    4.代码生成

    时钟配置完毕后,选择“Project Manager”到工程配置界面。
    1、配置工程的名称
    2、工程存储路径
    3、IDE选择(如果是keil工具,选择MDK-ARM)
    4、mcu依赖的cube包在哪个目录

    接着到“Code Generator”下选择这几个选项来生成工程:

    选择好过后我们就可以点击右上角的"GENERATE CODE"按键来生成代码了。
    如果提示你的firmware package 缺少直接更新下载即可,如果没网状态,就需要去官网下载依赖包放在之前提到的目录下即可。

    我是用一下依赖包生成得工程代码。

    3.编译工程

    点击编译按钮对工程进行编译。

    在 CubeMX 生成的文件中添加用户代码的时候,必须是写在/* USER CODE BEGIN n*/和/* USER CODE
    END n*/之间。这样如果需要改变 Cube 工程的配置,在重新生成代码时,在这两句注释之间的语 句不会被覆盖。而用户新建或添加的文件不会受到影响。

    4.添加功能代码

    我们这里工程就基本建好了,现在来实现功能代码部分。
    在代码中添加如下代码就能够采集ADC了:

    while(1)
    {
    	HAL_ADC_Start(&hadc);    //启动ADC转换
    	HAL_ADC_PollForConversion(&hadc,0x10);  //等待转换完成
    	ad_value = HAL_ADC_GetValue(&hadc);	//获取转换值
    	HAL_Delay(500);   //正常使用别加这个延时,会导致程序卡
    }
    
    

    以上就配置好了ADC可自行根据需求进行,我一般没用这个模式,感觉很麻烦。我这里把它配置成了DMA的模式。

    4.ADC的DMA配置

    使能ADC配置中的DMA模式:
    mode:循环
    data width :全字

     //使能DMA,配置DMA一直采集程序容易阻塞,开启后
     //启动后一段时间采集一次吧,别一直采集,会导致阻塞
    uint32_t ADC_Value[2] = {0};
    //我这里简单表示为1s采集一次
    while(1秒)
    {
    	HAL_ADC_Start_DMA(&hadc,(uint32_t*)ADC_Value,2);  //使能采集函数保存到ADC_value数组内
    }
    
    

    创作不易,请大佬们点个赞!

    有问题请留言讨论!

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32CubeMX学习:ADC配置实战

    发表评论