АЦП используется в приложениях для измерения аналогового напряжения от различных датчиков, напряжения батареи, тока и т. д. На микроконтроллере есть один 10-битный блок АЦП. Это АЦП общего назначения, ожидать слишком большой точности от него не можем. Диапазон чувствительности аналогового входа — от 0 до VDD (2,7~5,5 В). Точность снижается, если напряжение ниже 2,9В. Всего 10 каналов: 8 внешних каналов (A0 – A7) + 2 внутренних канала (8 - VREF, 9 - калибровочных напряжений) Восьмой канал внутреннее опорное напряжения. Будем его использовать. Картинка из справки Опорное напряжение 1.2В Напишем программу для считывания напряжения с пина PC4 Исходник для MounRiver Studio 1. Функция инициализации ADC static void Init_ADC(void) {
GPIO_InitTypeDefGPIO_InitStructure = { 0 };
ADC_InitTypeDef ADC_InitStructure = { 0 }; //вкл тактирование периферии
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOC, ENABLE);
//частота 3 МГц
RCC_ADCCLKConfig(RCC_PCLK2_Div8)