STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度

1、准备开发板

这里我选用了一块网红开发板:”小熊派“,这款板子的人气比较高,还是全国大学生物联网设计竞赛(华为杯)的华为竞赛开发板,我个人也比较喜欢用这款板子,这款板子在放在纸箱吃灰半年之后,被我重新拿了起来,并想借此写博客的机会,整理一下自己的代码。

开发板功能区分布图

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第1张图片

开发板俯视图

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第2张图片

2、STM32CubeMX生成代码

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第3张图片

搜索并选择芯片型号

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第4张图片

配置系统时钟

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第5张图片

配置时钟树

STM32L4的最高主频可达到80M,最后使HCLK = 80Mhz即可:

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第6张图片
STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第7张图片

配置串口

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第8张图片

配置ADC

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第9张图片
STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第10张图片

生成工程设置

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第11张图片

代码生成配置

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第12张图片

生成代码

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第13张图片

生成成功

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第14张图片

3、在MDK中编写代码

在adc.h中的用户代码区编写以下代码

/* USER CODE BEGIN Prototypes */
uint32_t ADC_GetValue(void);
/* USER CODE END Prototypes */

在adc.c中的用户代码区编写以下代码

uint32_t ADC_GetValue(void)
{
	uint32_t adc_value;
	HAL_ADC_Start(&hadc1);                    //启动ADC单次转换
	HAL_ADC_PollForConversion(&hadc1, 50);    //等待ADC转换完成
	adc_value = HAL_ADC_GetValue(&hadc1); //读取ADC转换数据
	return adc_value;
}

在main.c中的main函数的用户代码区编写以下代码

  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		float smoke_value = (float)ADC_GetValue()/4096*3.3;
		printf("smoke_value:%f\r\n",smoke_value);
		HAL_Delay(1000);
  }
  /* USER CODE END 3 */

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第15张图片

4、配置烧录器

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第16张图片
STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第17张图片

5、烧录代码

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第18张图片

6、实验现象

STM32CubeMX基础例程(小熊派):04.ADC采集烟雾浓度_第19张图片

你可能感兴趣的:(STM32CubeMX基础例程,stm32,单片机,物联网,嵌入式)