JT-DT-YD4N02B_4G_RTT_MRS/bsp/inc/bsp_adc.h

62 lines
1.9 KiB
C
Raw Permalink Normal View History

2024-12-30 11:50:48 +08:00
/*
* @Author : stark1898y 1658608470@qq.com
* @Date : 2024-09-13 13:05:36
* @LastEditors : stark1898y 1658608470@qq.com
* @LastEditTime : 2024-09-13 13:05:37
* @FilePath : \JT-DT-YD4N02A_RTT_MRS-4G\bsp\inc\bsp_adc.h
* @Description :
*
* Copyright (c) 2024 by yzy, All Rights Reserved.
*/
#ifndef __BSP_ADC_H__
#define __BSP_ADC_H__
#include "board.h"
//#define TEST_BSP_ADC
// ADC要采集的通道个数
#define NUM_OF_CHANNEL (1U)
// ADC要采集的次数
#define ADC_TIMES (30U)
#define ADC_BUFFER_SIZE (NUM_OF_CHANNEL * ADC_TIMES)
// ADC GPIO 宏定义
#define USED_ADC_GPIO_PORT GPIOA
#define USED_ADC_GPIO_CLK_ENABLE() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE)
// ADC 序号宏定义
#define USED_ADC ADC1
#define USED_ADC_CLK_ENABLE() RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
// ADC DMA 通道宏定义这里我们使用DMA传输
#define USED_ADC_DR_ADDRESS ((uint32_t)&USED_ADC->RDATAR)
#define USED_ADC_DMA_CLK_ENABLE() RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
#define USED_ADC_DMA_STREAM DMA1_Channel1
/***************************12V输入的检测用来实现掉电检测****************************/
// #define VIN_ADC_GPIO_PORT GPIOA
#define VIN_ADC_GPIO_PIN GPIO_Pin_6
// #define VIN_ADC_GPIO_CLK_ENABLE() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE)
// #define VIN_ADC ADC1
// #define VIN_ADC_CLK_ENABLE() RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
#define VIN_ADC_CHANNEL ADC_Channel_6
typedef enum
{
kVinAdc = 0U,
} TeAdcIndex;
// 存储采集的数据
extern uint16_t adc_buffer[ADC_BUFFER_SIZE];
int BSP_ADC_Init(void);
float Get_ADC_Average(TeAdcIndex index);
float Get_ADC_Voltage(TeAdcIndex index);
#endif // !__BSP_ADC_H__