newPtz/drivers/drv_adc.h

63 lines
2.4 KiB
C
Raw Normal View History

2025-09-12 09:53:32 +00:00
#ifndef __DRV_ADC_H_
#define __DRV_ADC_H_
2025-09-16 09:20:37 +00:00
#include "tmp75.h"
#include "stdlib.h"
#include "string.h"
#include "gd32f4xx.h"
#include "gd32f4xx_adc.h"
#include "gd32f4xx_dma.h"
#include "rtthread.h"
/* 自定义宏,方便修改通道和引脚 */
#define ADCX ADC1
2025-09-13 09:22:00 +00:00
#define VOLTAGE_ADC_CHANNEL ADC_CHANNEL_12
#define CURRENT_ADC_CHANNEL ADC_CHANNEL_13
#define ADC_GPIO_PORT GPIOC
#define VOLTAGE_ADC_PIN GPIO_PIN_2
#define CURRENT_ADC_PIN GPIO_PIN_3
2025-09-16 09:20:37 +00:00
#define LB_V_TIMES 7 //电压采样滤波次数
#define LB_I_TIMES 12 //电流采样滤波次数
#define LB_T_TIMES 7 //温度采样滤波次数
/*
adc模式配置参数
ENABLE
DISABLE
*/
#define CONTINUOUS_STATUS ENABLE// 是否开启连续转换
#define SEQUENCE_CHANNEL ADC_ROUTINE_CHANNEL// 注入组还是规则组
#define SCAN_STATUS ENABLE// 是否开启扫描模式
#define DMA_STATUS ENABLE// 是否开启dma
#define CHANNEL_LENGTH 2// 通道数量:1~16
/* adc dma */
#define USER_DMA_ADC_CHANNEL DMA_CH3 //DMA通道ADC0:DMA_CH0 DMA_CH4
// ADC1:DMA_CH2 DMA_CH3
// ADC2:DMA_CH0 DMA_CH3
#define USER_DMA_ADC_SUBPERI DMA_SUBPERI1 //DMA外设源:ADC0:DMA_SUBPERI0
// ADC1:DMA_SUBPERI1
// ADC2:DMA_SUBPERI2
#define DMA_ADC_IRQn DMA1_Channel0_IRQn //DMA1_Channel0_IRQn
//DMA1_Channel1_IRQn
//DMA1_Channel2_IRQn
//DMA1_Channel3_IRQn
//DMA1_Channel4_IRQn
#define DMA_ADC_PRIORITY_PRE 0 //抢占优先级
#define DMA_ADC_PRIORITY_SUB 1 //子优先级
2025-09-12 09:53:32 +00:00
2025-09-16 09:20:37 +00:00
void adc_init(void);
void adc_rcu_config(void);
void adc_gpio_config(void);
void adc_dma_config(void);
2025-09-13 09:22:00 +00:00
void adc_config(void);
float ptz_Voltage_collect_adc1_task();
float ptz_Current_collect_adc1_task();
float ptz_temperature_collect_tmp75_task();
2025-09-12 09:53:32 +00:00
#endif