本篇文章是在蓝桥杯嵌入式-LCD完整的项目下补充完成的。如果需要代码,直接看第四部分的下载链接。

一、STM32CubMX配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、代码方面

2.1 main.c

2.1.1 修改位置

在这里插入图片描述

2.1.2 对应代码
  HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED); //ADC校准函数
  HAL_ADCEx_Calibration_Start(&hadc2,ADC_SINGLE_ENDED); //ADC校准函数
  HAL_ADC_Start_DMA(&hadc2,(uint32_t*)&adc_buffer[0][0],30); //R37-PB15 
  HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&adc_buffer[1][0],30); //R38-PB12

2.2 task.c

2.2.1 修改位置

在这里插入图片描述
在这里插入图片描述

2.2.2 对应代码
uint32_t adc_buffer[2][30];
float adcVal[2];


void adc_proc(void)
{
    adcVal[0] = 0;
    adcVal[1] = 0;

    for (uint8_t i = 0; i < 30; i++)
    {
        adcVal[0] += adc_buffer[0][i];
        adcVal[1] += adc_buffer[1][i]; 
    }

    adcVal[0] = adcVal[0] / 30 * 3.3f / 4096;
    adcVal[1] = adcVal[1] / 30 * 3.3f / 4096;
}

void lcd_proc()
{
	lcddisplay(Line1, "R37:%.2f R38:%.2f",adcVal[0],adcVal[1]);
}

task_t scheduler_t[] =
{
  {lcd_proc, 100, 0},
	{adc_proc,100,0}
};

2.3 task.h

2.3.1 修改位置

在这里插入图片描述

2.3.2 对应代码
extern uint32_t adc_buffer[2][30];

三、其他

3.1 task.h的打开方法

3.1.1

在这里插入图片描述

3.1.2

在这里插入图片描述

3.2 校准函数查找方法(比赛时以找为主)

在这里插入图片描述

3.3 单ADC捕获代码(下载资料含单ADC例程)

STM32CubMX只用配置需要使用的(R37/R38),代码的位置与本文第二部分内容相同。例程为R38。

main.c
	/*如果使用R37,只需要将这两个函数的hadc1改为hadc2即可,task.c、task.h不用修改任何东西*/
  HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED); 
  HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&adc_buffer[0],30); 
  
	/*R37使用以下函数(STM32CubMX配置参考本文第一部分,只配置R37相关即可)*/
//HAL_ADCEx_Calibration_Start(&hadc2,ADC_SINGLE_ENDED); 
//HAL_ADC_Start_DMA(&hadc2,(uint32_t*)&adc_buffer[0],30); 
task.c
uint32_t adc_buffer[30];   
float adcVal; 

void adc_proc(void)
{
    adcVal = 0;
    
    for (uint8_t i = 0; i < 30; i++)
    {
        adcVal += adc_buffer[0]; 
    }
    
    adcVal = adcVal / 30 * 3.3f / 4096;
}

void lcd_proc()
{
	lcddisplay(Line1, "R38:%.2f",adcVal);
}

task_t scheduler_t[] =
{
    {lcd_proc, 100, 0},
	{adc_proc,100,0}
};
task.h
extern uint32_t adc_buffer[30];

3.4 完整代码下载

资料下载:https://pan.quark.cn/s/08f8e6116512

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐