提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言

一、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方式相关推荐

  1. STM32F407霸天虎HAL库学习笔记——使用ADC采集MQ135的数据并通过OLED显示

    STM32F407霸天虎HAL库学习笔记--使用ADC采集MQ135的数据并通过OLED显示 一.软件准备 二.硬件准备 三.CubeMX配置 四.Keil MQ135.c MQ135.h main函 ...

  2. STM32 HAL库学习笔记1-HAL库简介

    STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...

  3. STM32 HAL库学习笔记4-SPI

    STM32 HAL库学习笔记4-SPI 前言 一.SPI协议简介 SPI物理层 SPI协议层 1.基本通讯过程 2. 通讯的起始和停止信号 3. 数据有效性 4. CPOL/CPHA 及通讯模式 二. ...

  4. STM32F407霸天虎HAL库学习笔记——串口发送

    STM32F407霸天虎HAL库学习笔记--串口收发 一.软件准备 二.硬件准备 三.CubeMX配置 四.Keil printf重写 main函数 五.实验效果 一.软件准备 软件准备 二.硬件准备 ...

  5. STM32 HAL库学习笔记2 HAL库介绍

    STM32 HAL库学习笔记2 HAL库介绍 CMSIS标准 一.再次认识HAL库 HAL库设计思想 HAL库实现方式 以GPIO模块为例 GPIO外设数据类型 GPIO外设接口函数 二.使用HAL库 ...

  6. STM32cubemx——HAL库学习笔记 六、IWDG独立看门狗的配置

    一.配置STM32cubeMX工程 在配置好时钟和调试设备以后进行一下操作即可以使用 看门狗的溢出时间公式为 Tout= 分频系数/ 时钟 * 重装载值 二.IWDG的技术讲解 可以到看,看门狗相对于 ...

  7. Python的matplotlib库学习笔记第一篇

    各位大佬,小松鼠有什么不对的地方,请大家赐教. matplotlib.pyplot是绘制各类可视化图形的命令字库,相当于Matplotlib库的快捷方式 导入:import matplotlib.py ...

  8. 爱上hal库学习笔记——cubemx图形界面,洋桃电子YYDS

    新建工程 选择封装芯片型号 3.图形界面  (一)系统内核 DMA 直接存储器访问:可不通过CPU程序处理直接从某个功能自动读出数据 GPIO 通用输入输出端口:可把电平输入输出,读取按键和控制LED ...

  9. 【STM32笔记】HAL库低功耗模式配置(ADC唤醒无法使用、低功耗模式无法烧录解决方案)

    [STM32笔记]HAL库低功耗模式配置(ADC唤醒无法使用.低功耗模式无法烧录解决方案) [STM32笔记]低功耗模式配置及避坑汇总 一.低功耗模式简介 系统提供了多个低功耗模式,可在 CPU 不需 ...

最新文章

  1. Html5 FileReader 对文件进行Base64编码
  2. port常用和不常用端口一览表
  3. easyui textbox 设置只读不可编辑状态
  4. HDU2650(高斯整数环)
  5. c++协程2 (boost::coroutine)
  6. Linux系统编程---17(条件变量及其函数,生产者消费者条件变量模型,生产者与消费者模型(线程安全队列),条件变量优点,信号量及其主要函数,信号量与条件变量的区别,)
  7. 阿里文娱测试实战:机器学习+基于热度链路推荐的引流,让对比测试更精准
  8. 曹如进:使用Faker.NET仿造数据
  9. Spring 注解配置(2)——@Autowired
  10. python:argsort(返回元素排序后的索引值)
  11. Dialogue System for Unity文档中英对照版(简雨原创翻译)第六篇(音序器相关,语音同步)
  12. 存量运营好工具:客户稳定度评分卡模型
  13. 史上最全Java学习资料,共14W字,耗时半年整理
  14. 关于 360 度评估
  15. python Django Rest_Framework框架 视图集与路由Routers详解(图文并茂版)
  16. 递归算法(JS实现代码)
  17. Siammask源码demo运行配置
  18. Java树形结构模糊搜索,模糊匹配
  19. 《解救吾先生》TC枪版1.07GB迅雷bt种子ed2k下载
  20. NX二次开发-创建图纸尺寸表达式抑制UF_DRF_add_controlling_exp

热门文章

  1. 童小军:用户是大数据的本质驱动力
  2. PROE草绘很卡(闪)的解决办法
  3. [80一代]关于垮掉的一代
  4. 摄影测量学:课后练习总结2
  5. [组图]网络游戏设计(转)
  6. 火星双色球预测程序终于面世!就此全面终结双色球彩票的生路,哈哈!
  7. RPA之家UiPath视频教程
  8. css做个波浪悬浮球?
  9. 如何进行BI工具的选型?2019必看的商业智能工具选型参考
  10. Spring的Environment类的使用