BLE_TYQ_BJQ_CH32V303/bsp/inc/bsp_adc.h

65 lines
2.1 KiB
C
Raw Permalink Normal View History

2024-12-01 13:49:43 +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\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
2024-12-13 19:07:17 +08:00
#define GAS_POWER_SWITCH_GPIO_PIN GPIO_Pin_9
#define GAS_POWER_SWITCH_GPIO_PORT GPIOC
2024-12-01 13:49:43 +08:00
2024-12-13 19:07:17 +08:00
#define GAS_POWER_OPEN GPIO_WriteBit(GAS_POWER_SWITCH_GPIO_PORT, GAS_POWER_SWITCH_GPIO_PIN, Bit_SET)
#define GAS_POWER_CLOSE GPIO_WriteBit(GAS_POWER_SWITCH_GPIO_PORT, GAS_POWER_SWITCH_GPIO_PIN, Bit_RESET)
2024-12-01 13:49:43 +08:00
// ADC要采集的通道个数
#define NUM_OF_CHANNEL (2U)
// 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_PIN GPIO_Pin_0
#define VIN_ADC_CHANNEL ADC_Channel_0
2024-12-04 10:31:57 +08:00
#define GAS_ADC_GPIO_PIN GPIO_Pin_5
#define GAS_ADC_GPIO_PORT GPIOC
#define GAS_ADC_CHANNEL ADC_Channel_15
2024-12-01 13:49:43 +08:00
typedef enum
{
kVinAdc = 0U,
kGasAdc,
} TeAdcIndex;
// 存储采集的数据
extern uint16_t adc_buffer[ADC_BUFFER_SIZE];
int BSP_ADC_Init(void);
2025-06-20 20:35:34 +08:00
uint16_t Get_ADC_Average(TeAdcIndex index);
2024-12-01 13:49:43 +08:00
float Get_ADC_Voltage(TeAdcIndex index);
#endif // !__BSP_ADC_H__