基于STM32F103控制器的蓄电池双向电流检测设计(3)
时间:2026-01-17
时间:2026-01-17
基于STM32F103控制器的蓄电池双向电流检测设计
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
……
//配置PC4和PC6为模拟量输入
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_6 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOC, &GPIO_InitStructure);
……
}
/*电压电流配置、工作采样主程序*/
int main(void)
{
……
RCC_Configuration();
GPIO_Configuration();
DMA_Configuration();
……
//ADC1 configuration
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 1;
ADC_Init(ADC1, &ADC_InitStructure);
//DC1 regular channel14 configuration
ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_55Cycles5);
ADC_DMACmd(ADC1, ENABLE); //Enable ADC1 DMA
ADC_Cmd(ADC1, ENABLE); // Enable ADC1
// Enable ADC1 reset calibaration register
ADC_ResetCalibration(ADC1);
// Check the end of ADC1 reset calibration register
while(ADC_GetResetCalibrationStatus(ADC1));
// Start ADC1 calibaration
ADC_StartCalibration(ADC1);
// Check the end of ADC1 calibration
while(ADC_GetCalibrationStatus(ADC1));
// Start ADC1 Software Conversion
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
while(1)
{
AD_value=ADC_GetConversionValue(ADC1);
}
}
上一篇:佐龙小学学校应急预案范本