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


相关推荐
糖糖单片机设计13 小时前
基于 STM32 与中移 OneNet 的智慧电梯监控平台系统
stm32·单片机·嵌入式硬件·51单片机·语音识别
创界工坊工作室16 小时前
55-基于STC89C52宠物智能饲喂控制系统设计
stm32·单片机·嵌入式硬件·51单片机·proteus·宠物
Li_RuiQi16 小时前
DAgger方法演进_独立学习笔记
笔记·学习·计算机视觉
极客 - L U19 小时前
卡尔曼滤波从零到精通
c语言·数据结构·单片机·嵌入式硬件·mcu
码小文21 小时前
CAM350使用笔记(6)---Gerber文件铺铜间距检查
嵌入式硬件·cam350软件·cam350使用笔记
Li_RuiQi21 小时前
DAgger与交互式模仿学习_ACT学习笔记
笔记·学习
He BianGu21 小时前
【笔记】C# 中BindingFlags的详细作用
笔记·c#
AI视觉网奇21 小时前
turtle 入门教程笔记
笔记
跨知易知识产权1 天前
美国专利确权是什么,和专利诉讼有什么不一样?
笔记
杨逢昌工厂6S管理1 天前
126-杨逢昌6S三环体系:越做越乱的现场熵增机理与基准化治理——一线现场诊断笔记
经验分享·笔记·职场和发展·学习方法