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烧录,测试串口数据的发送


相关推荐
奋发向前wcx33 分钟前
y1,y2总复习笔记10 2026.7.24
笔记·哈希算法·散列表
MuMuMu12231 小时前
智慧监测的“火眼金睛”:当AIoT重构环保监管体系
笔记
一只小菜鸡..3 小时前
南京大学 操作系统 (JYY) 学习笔记:进程地址空间与内存“外挂”魔法
笔记·学习
一只小菜鸡..4 小时前
南京大学 操作系统 (JYY) 学习笔记:访问操作系统的对象与“一切皆文件”
笔记·学习
茉莉玫瑰花茶8 小时前
Windows 平台下的 UDP 客户端
stm32·单片机·嵌入式硬件
摇滚侠9 小时前
《RocketMQ 官网》阅读笔记 RocketMQ 消息队列 MessageQueue 消息 Messagege
笔记·rocketmq
磨十三10 小时前
U-Boot
arm开发·嵌入式硬件
笔夏10 小时前
【移芯平台CAT1模组】烧写固件
stm32·单片机·学习
Ztt66666666610 小时前
【无标题】
经验分享·笔记·其他·百度·微信公众平台
十月的皮皮10 小时前
STM32从零到量产开发:四路继电器工业控制模块开发— 继电器模块bsp_di.h与 bsp_di.c文件
c语言·stm32·stm32cubemx·hal库