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


相关推荐
疯狂打码的少年4 小时前
【计算机网络】IPv6基础(特点、表示法、与IPv4对比)
网络·笔记·计算机网络
Zw-awa4 小时前
标准输入输出与 MicroLIB:C 语言的终端去了哪里
stm32
糖糖单片机设计5 小时前
基于 STM32 的公交车定位与报站系统
stm32·单片机·嵌入式硬件
祖力556 小时前
快速学会51单片机基础
单片机·嵌入式硬件·51单片机
泡泡鱼(敲代码中)7 小时前
MySQL基础学习笔记:从数据模型到DDL全掌握
开发语言·数据库·笔记·学习·mysql
江湖人称菠萝包7 小时前
【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter4-进程
windows·笔记
单片机仿真设计8 小时前
【proteus仿真】基于 STM32 的林区环境监控系统设计
stm32·单片机·proteus
今儿敲了吗9 小时前
03停用词过滤
笔记·python
Doraemomo9 小时前
IMX6ULL裸机开发——GPIO的使用
单片机·嵌入式硬件
笨笨饿10 小时前
#138_解决Codex要五次回复的问题
linux·stm32·单片机·嵌入式硬件·mcu·物联网·嵌入式实时数据库