47 lines
1.5 KiB
C
47 lines
1.5 KiB
C
|
#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);
|
|||
|
RCC_ADCCLKConfig(RCC_PCLK2_Div6);
|
|||
|
|
|||
|
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);
|
|||
|
}
|
|||
|
|