Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 1
Регистрация: 05.04.2017
Сообщений: 62
1

АЦП STM32F103 настройка

20.07.2018, 10:17. Просмотров 1815. Ответов 2
Метки нет (Все метки)


здравствуйте, уважаемые форумчане. Хочу я настроить ацп STM32F103CBT6. Не могу понять регистры SQR1 - SQR3. То есть как выбрать конкретный канал ацп. На данный момент мне нужно однократное преобразование на первом канале регулярной группы. В последствии я буду запускать его по таймеру. Сейчас же хотелось бы просто разобраться как настроить.
вот мой код инициализации


C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void adc_init(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2ENR_ADC1EN, ENABLE); //Включаем тактирование АЦП
    ADC1->CR2 |= ADC_CR2_CAL; //Запуск калибровки АЦП
    while (!(ADC1->CR2 & ADC_CR2_CAL)); //Ожидаем окончания калибровки
    //ADC1->SQR3 |= ADC_SQR3_SQ1_2;//выбырается нужный канал(здесь выбран четвертый)
    ADC1->SMPR2 |= (ADC_SMPR2_SMP1_2 | ADC_SMPR2_SMP1_1 | ADC_SMPR2_SMP1_0); //Задаем длительность выборки
    ADC1->CR2 |= ADC_CR2_EXTSEL; //Преобразование регулярной группы запустится установкой бита SWSTART
    ADC1->CR2 |= ADC_CR2_EXTTRIG; //Разрешаем внешний запуск регулярной группы
    ADC1->CR2 |= ADC_CR2_ADON;
 
    
}
 
ADC1->CR2 |= ADC_CR2_SWSTART;
while ((ADC1->SR & ADC_SR_EOC) != ADC_SR_EOC)  {};
adc_vallue  = ADC1->DR;
у меня закоментированная строчка с выбором канала взята из интернета. Объясните пожалуйста почему так. Да и вообще правильно ли я остальное делал
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.07.2018, 10:17
Ответы с готовыми решениями:

Алгоритм работы с ацп АЦП STM32F103
Здравствуйте, уважаемые форумчане. Подскажите пожалуйста алгоритм работы с ацп. Допустим мне надо...

STM32F103 АЦП
Здравствуйте. Имею плату STM32F103 (купил на али "свисток"). Запустил на ней АЦП по...

Использование АЦП в STM32f103
Пытаюсь измерять напряжение на первом канале. Не идет. Где косяк? //************** ...

Однобитность АЦП в stm32f103
Вот такая загогулина: плата- качественная Propox, ИДЕ- CooCox, код взят отсюда:...

2
845 / 518 / 169
Регистрация: 30.07.2015
Сообщений: 1,689
20.07.2018, 16:21 2
Лучший ответ Сообщение было отмечено Dim_Dimich как решение

Решение

Dim_Dimich, сначала надо указать количество каналов оцифровки в регистре ADC1->SQR1 битами ADC_SQR1_L_0 , ADC_SQR1_L_1 и так далее. Например, оцифровывать будешь всего один канал:
значит запись
C
1
ADC1->SQR1 |= ADC_SQR1_L_0;
Далее настраиваешь нужный канал, пусть этим одним каналом будет назначен первый канал
C
1
ADC1->SQR3 |=  ADC_SQR3_SQ1_0;
Например, хочешь оцифровывать 2 канала.
Общее количество 2:
C
1
ADC1->SQR1 |= ADC_SQR1_L_1;
Конкретные каналы, например 5 и 7
Пусть оцифровывается первым 5 канал:
C
1
ADC1->SQR3 |=  (ADC_SQR3_SQ1_0 | ADC_SQR3_SQ1_2) ;
Вторым пойдет 7 канал:
C
1
ADC1->SQR3 |=  (ADC_SQR3_SQ2_0 | ADC_SQR3_SQ2_1 | ADC_SQR3_SQ2_2) ;
1
0 / 0 / 1
Регистрация: 05.04.2017
Сообщений: 62
20.07.2018, 16:30  [ТС] 3
спасибо большое! Теперь понятно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.07.2018, 16:30

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

АЦП и таймер STM32F103 - ARM, Cortex, STM32 микроконтроллер
Здравствуйте, уважаемые форумчане. Ковыряюсь я с ацп и хочу запускать его по таймеру с частотой 1...

Настройка тактирования STM32F103
Доброго времени суток. Пытаюсь разобраться с тактированием STM32F103. Пишу код, вроде все верно:...

STM32F103 настройка и использование USB
Доброго времени суток. Добрался я все таки до USB интерфейса в STM32. Работал с программным USB...

Настройка OSC_OUT как GPIO для STM32f103
Добрый день. Контроллер STM32f103 тактируется от внешнего генератора, неиспользованный пин OSC_OUT...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.