ДОбрый день. Изивните, елси эта тема уже была, но не могли бы вы сказать, как мне запустить АЦП и проверить напряжение с ножки PA1(ADC123_IN1).
Есть всем известные функции
Спойлер
void ADC_Configuration(void){
ADC_InitTypeDef ADC_InitStructure;
ADC_CommonInitTypeDef adc_init;
/* разрешаем тактирование AЦП1 */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
/* сбрасываем настройки АЦП */
ADC_DeInit();
/* АЦП1 и АЦП2 работают независимо */
adc_init.ADC_Mode = ADC_Mode_Independent;
adc_init.ADC_Prescaler = ADC_Prescaler_Div2;
/* выключаем scan conversion */
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
/* Не делать длительные преобразования */
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
/* Начинать преобразование програмно, а не по срабатыванию триггера */
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConvEdge_None;
/* 12 битное преобразование. результат в 12 младших разрядах результата */
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
/* инициализация */
ADC_CommonInit(&adc_init);
ADC_Init(ADC1, &ADC_InitStructure);
/* Включаем АЦП1 */
ADC_Cmd(ADC1, ENABLE);
}
u16 readADC1(u8 channel)
{
ADC_RegularChannelConfig(ADC1, channel, 1, ADC_SampleTime_3Cycles);
// начинаем работу
ADC_SoftwareStartConv(ADC1);
// ждём пока преобразуется напряжение в код
while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);
// возвращаем результат
return ADC_GetConversionValue(ADC1);
}
И как мне прочитать именно ADC123_IN1, именно с ножки PA1?
Заранее Спасибо!

