IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32CubeMX学习六 之ADC配置 -> 正文阅读

[嵌入式]STM32CubeMX学习六 之ADC配置


前言

记录一下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数组内
}


创作不易,请大佬们点个赞!
有问题请留言讨论!
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 11:33:13  更:2022-09-13 11:37:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 11:19:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码