// 初始化ADC
ADC_HandleTypeDef hadc;
hadc.Instance = ADCx; // ADC实例,例如ADC1
hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; // 时钟预分频
hadc.Init.Resolution = ADC_RESOLUTION_12B; // 分辨率
hadc.Init.ScanConvMode = ENABLE; // 扫描模式
hadc.Init.ContinuousConvMode = DISABLE; // 非连续转换模式
hadc.Init.DiscontinuousConvMode = DISABLE; // 非连续采样模式
hadc.Init.ExternalTrigConv = ADC_EXTERNALTRIGCONV_Tx_TRGO; // 外部触发源
hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT; // 数据对齐
hadc.Init.NbrOfConversion = 1; // 转换通道数
HAL_ADC_Init(&hadc);
// 配置ADC通道
ADC_ChannelConfTypeDef sConfig;
sConfig.Channel = ADC_CHANNEL_x; // ADC通道,例如ADC_CHANNEL_1
sConfig.Rank = 1; // 通道等级
sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5; // 采样时间
HAL_ADC_ConfigChannel(&hadc, &sConfig);
// 启动ADC
HAL_ADC_Start_IT(&hadc); // 启动ADC并开启中断 |