HAL库学习笔记ADC篇----ADC多通道连续转换+DMA方式
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
一、Cube配置(F407VET6)
二、使用步骤
1. 代码总览
2.代码注意事项以及解析
总结
前言
第一次写,无原理解析,只有代码!简单又粗暴嘿嘿
一、Cube配置(F407VET6)
1、勾选的是ADC1的5678
2、
3、DMA 设置
二、使用步骤
1. 代码总览
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "adc.h"
#include "dma.h"
#include "usart.h"
#include "gpio.h"/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "stdio.h"
#include "string.h"
/* USER CODE END Includes *//* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD *//* USER CODE END PTD *//* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD *//* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM *//* USER CODE END PM *//* Private variables ---------------------------------------------------------*//* USER CODE BEGIN PV */
uint16_t ADCRes[4]; //变量易变,编译器不能随便优化
/* USER CODE END PV *//* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
/* USER CODE BEGIN PFP *//* USER CODE END PFP *//* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 *//* USER CODE END 0 *//*** @brief The application entry point.* @retval int*/
int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_DMA_Init();//DMA初始化一定要在ADC之前MX_ADC1_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 */HAL_ADC_Start_DMA(&hadc1,(uint32_t*)ADCRes,8);//4个通道8个,3个就为6,长度不对数据就会出错/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */char str[64];sprintf(str,"%f,%f,%f,%f\r\n",(ADCRes[0]*3.3)/4095,(ADCRes[1]*3.3)/4095,(ADCRes[2]*3.3)/4095,(ADCRes[3]*3.3)/4095); //一次触发无限次采样HAL_UART_Transmit(&huart1,(uint8_t*)str,strlen(str),HAL_MAX_DELAY);HAL_Delay(5000);}/* USER CODE END 3 */
}
2.代码注意事项以及解析
代码如下(示例):
/* Initialize all configured peripherals */MX_GPIO_Init();MX_DMA_Init();//DMA初始化一定要在ADC之前MX_ADC1_Init();MX_USART1_UART_Init();
DMA初始化一定要在ADC之前!!!!!否则数据就有问题
总结
完整工程如下:
链接:https://pan.baidu.com/s/1gyvAwMwa2n63BWtqZ0wQHw
提取码:5umm
HAL库学习笔记ADC篇----ADC多通道连续转换+DMA方式相关推荐
- STM32F407霸天虎HAL库学习笔记——使用ADC采集MQ135的数据并通过OLED显示
STM32F407霸天虎HAL库学习笔记--使用ADC采集MQ135的数据并通过OLED显示 一.软件准备 二.硬件准备 三.CubeMX配置 四.Keil MQ135.c MQ135.h main函 ...
- STM32 HAL库学习笔记1-HAL库简介
STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...
- STM32 HAL库学习笔记4-SPI
STM32 HAL库学习笔记4-SPI 前言 一.SPI协议简介 SPI物理层 SPI协议层 1.基本通讯过程 2. 通讯的起始和停止信号 3. 数据有效性 4. CPOL/CPHA 及通讯模式 二. ...
- STM32F407霸天虎HAL库学习笔记——串口发送
STM32F407霸天虎HAL库学习笔记--串口收发 一.软件准备 二.硬件准备 三.CubeMX配置 四.Keil printf重写 main函数 五.实验效果 一.软件准备 软件准备 二.硬件准备 ...
- STM32 HAL库学习笔记2 HAL库介绍
STM32 HAL库学习笔记2 HAL库介绍 CMSIS标准 一.再次认识HAL库 HAL库设计思想 HAL库实现方式 以GPIO模块为例 GPIO外设数据类型 GPIO外设接口函数 二.使用HAL库 ...
- STM32cubemx——HAL库学习笔记 六、IWDG独立看门狗的配置
一.配置STM32cubeMX工程 在配置好时钟和调试设备以后进行一下操作即可以使用 看门狗的溢出时间公式为 Tout= 分频系数/ 时钟 * 重装载值 二.IWDG的技术讲解 可以到看,看门狗相对于 ...
- Python的matplotlib库学习笔记第一篇
各位大佬,小松鼠有什么不对的地方,请大家赐教. matplotlib.pyplot是绘制各类可视化图形的命令字库,相当于Matplotlib库的快捷方式 导入:import matplotlib.py ...
- 爱上hal库学习笔记——cubemx图形界面,洋桃电子YYDS
新建工程 选择封装芯片型号 3.图形界面 (一)系统内核 DMA 直接存储器访问:可不通过CPU程序处理直接从某个功能自动读出数据 GPIO 通用输入输出端口:可把电平输入输出,读取按键和控制LED ...
- 【STM32笔记】HAL库低功耗模式配置(ADC唤醒无法使用、低功耗模式无法烧录解决方案)
[STM32笔记]HAL库低功耗模式配置(ADC唤醒无法使用.低功耗模式无法烧录解决方案) [STM32笔记]低功耗模式配置及避坑汇总 一.低功耗模式简介 系统提供了多个低功耗模式,可在 CPU 不需 ...
最新文章
- Html5 FileReader 对文件进行Base64编码
- port常用和不常用端口一览表
- easyui textbox 设置只读不可编辑状态
- HDU2650(高斯整数环)
- c++协程2 (boost::coroutine)
- Linux系统编程---17(条件变量及其函数,生产者消费者条件变量模型,生产者与消费者模型(线程安全队列),条件变量优点,信号量及其主要函数,信号量与条件变量的区别,)
- 阿里文娱测试实战:机器学习+基于热度链路推荐的引流,让对比测试更精准
- 曹如进:使用Faker.NET仿造数据
- Spring 注解配置(2)——@Autowired
- python:argsort(返回元素排序后的索引值)
- Dialogue System for Unity文档中英对照版(简雨原创翻译)第六篇(音序器相关,语音同步)
- 存量运营好工具:客户稳定度评分卡模型
- 史上最全Java学习资料,共14W字,耗时半年整理
- 关于 360 度评估
- python Django Rest_Framework框架 视图集与路由Routers详解(图文并茂版)
- 递归算法(JS实现代码)
- Siammask源码demo运行配置
- Java树形结构模糊搜索,模糊匹配
- 《解救吾先生》TC枪版1.07GB迅雷bt种子ed2k下载
- NX二次开发-创建图纸尺寸表达式抑制UF_DRF_add_controlling_exp