mppt/Hardware/src/adc.c

46 lines
1.5 KiB
C
Raw Normal View History

2024-07-11 06:58:55 +00:00
#include <adc.h>
int16_t Calibrattion_Val = 0;
//ADC<44><43>ӦGPIO<49><4F>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>ADC<44><43>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void ADC_all_Init(void)
{
ADC_InitTypeDef ADC_InitStructure = {0};
GPIO_InitTypeDef GPIO_InitStructure = {0};
RCC_PB2PeriphClockCmd(RCC_PB2Periph_GPIOA, ENABLE);
RCC_PB2PeriphClockCmd(RCC_PB2Periph_ADC1, ENABLE);
2024-08-29 02:50:22 +00:00
RCC_ADCCLKConfig(RCC_PCLK2_Div2);
2024-07-11 06:58:55 +00:00
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7; //PA1~7<><37>ӦADCͨ<43><CDA8>1~7
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
ADC_DeInit(ADC1);
Calibrattion_Val = Get_CalibrationValue(ADC1);
printf("Calibrattion_Val : %d\n", Calibrattion_Val);
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 1;
ADC_Init(ADC1, &ADC_InitStructure);
ADC_Cmd(ADC1, ENABLE);
ADC_FIFO_Cmd(ADC1, ENABLE);
ADC_BufferCmd(ADC1, DISABLE); //disable buffer
ADC_ResetCalibration(ADC1);
while(ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while(ADC_GetCalibrationStatus(ADC1));
RCC_ADCCLKConfig(RCC_HCLK_ADC);
ADC_DutyDelayCmd(ADC1,ENABLE);
ADC_Sample_ModeConfig(ADC1,ADC_Sample_Over_1M_Mode);
}