STM32CubeMX笔记(11)-- AD模块使用

AD模块使用

  • [<font size=5 >1、STM32CubeMX引脚设置和代码生成](#1、STM32CubeMX引脚设置和代码生成)
    • [1.1 相关STM32CubeMX生成代码配置如下:](#1.1 相关STM32CubeMX生成代码配置如下:)
    • [1.2 生成代码](#1.2 生成代码)
  • [<font size=5 >2、编写相关的C函数文件](#2、编写相关的C函数文件)
  • [<font size=5 >3、编译工程文件,使用ST-Link烧录,测试串口数据的发送](#3、编译工程文件,使用ST-Link烧录,测试串口数据的发送)

1、STM32CubeMX引脚设置和代码生成

1.1 相关STM32CubeMX生成代码配置如下:

相关外部晶振的设置参考:STM32CubeMX笔记(5)--定时器中断
相关芯片的AD采样引脚设置:(ADC_IN0)


相关时钟的参数设置:(分频设置)


1.2 生成代码

1、在STM32CubeMX 软件右上角,点击GEBERATE CODE项,生成代码。


2、编写相关的C函数文件

2.1、相关ADC函数开启:

相关的中断函数在stm32f1xx_hal_adc.c文件中可以查看得到。

HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length)这个函数中,我们可以看到相关ADC的DMA采样开启函数的处理。


2.2、相关ADC采样函数的编写:

HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length)函数复制,放置于到main.c中的用户代码区,开启ADC的DMA采样模式。


定义数组

c 复制代码
/* USER CODE BEGIN PV */
uint16_t adc_buf[1];
																					
/* USER CODE END PV */

开启ADC的DMA采样模式

c 复制代码
 /* USER CODE BEGIN 2 */
HAL_ADC_Start_DMA((ADC_HandleTypeDef*) &hadc1, (uint32_t*) adc_buf, (uint32_t) 1);

 /* USER CODE END 2 */

相关参数的介绍:

第一个参数:(ADC_HandleTypeDef*) &hadc1,ADC结构体,

例如:&hadc1,即使用ADC1采样,相关的结构体名称&hadc1可通过生成代码的ADC初始化函数MX_ADC1_Init();进行查看;

第二个参数:(uint32_t*) adc_buf,采样到的数据数组地址

例如:即使用开启了多少个ADC1采样引脚,则设置多长的数据数组,adc_buf[1] 对应1个通道,adc_buf[2] 对应2个通道;

第三个参数:== (uint32_t) 1==,采样到的数据数组长度,

例如:开启了多少个通道,则设置多长的数据长度,adc_buf[1] 设置1个长度,adc_buf[2] 设置2个长度;


2.2、相关ADC采样输出函数的编写:

使用串口打印输出相关的采样到的AD数据,相关串口编写看前面章节

相关函数编写

c 复制代码
/* Infinite loop */
 /* USER CODE BEGIN WHILE */
 while (1)
 {
   /* USER CODE END WHILE */

   /* USER CODE BEGIN 3 */
   UART1_printf_DMA("ADC1 = %d \r\n", adc_buf[0]);
   HAL_Delay(1000);
 }
 /* USER CODE END 3 */

3、编译工程文件,使用ST-Link烧录,测试串口数据的发送


相关推荐
_JinHao2 小时前
Cesium Viewer对象详解——Cesium基础笔记(快速入门)
前端·javascript·笔记·3d·webgl
lingzhilab5 小时前
零知IDE——STM32F407VET6与ADS1115模数转换器实现多通道数据采集显示系统
stm32·单片机·开源
xxy.c8 小时前
基于IMX6ULL的时钟,定时器(EPIT,GPT)
单片机·嵌入式硬件·fpga开发
sz-lcw9 小时前
MySQL知识笔记
笔记·mysql·adb
happygrilclh9 小时前
stm32L496 flash 分配
stm32·单片机·嵌入式硬件
古译汉书9 小时前
嵌入式铁头山羊STM32-各章节详细笔记-查阅传送门
数据结构·笔记·stm32·单片机·嵌入式硬件·个人开发
自由的好好干活10 小时前
从0开始使用LabVIEW操作数据采集卡-概述和新建新建项目
嵌入式硬件·labview
2301_8000509912 小时前
DNS 服务器
linux·运维·笔记
汇能感知12 小时前
光谱相机的未来趋势
经验分享·笔记·科技