реклама на сайте
подробности

 
 
> Как вы работаете с регистрами GPIOx_AFR?
allsettingsdone
сообщение Oct 20 2015, 08:11
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 22-01-13
Пользователь №: 75 284



Как вы настраиваете альтернативные функции у GPIO с помощью регистров GPIOx_AFR (например при настройке USART1 на PA9, PA10 на STM32F407VG) ? В стандартном файле описания периферии (stm32f4xx.h) - нет информации и масок для работы с этим регистром. Просто высчитываете сами битовую маску и записываете в этот регистр готовое число?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AlanDrakes
сообщение Oct 20 2015, 10:17
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 101
Регистрация: 2-05-15
Из: Россия, Омск
Пользователь №: 86 474



ИМХО, в Datasheet на STM32F407, страница 61, описаны альтернативные функции по каждому пину в виде таблицы. Соответственно, AF0 == 0000 (0), AF15 == 1111 (F), etc.
А уже в Reference manual'е описаны сами регистры.
Так что, пример выбора альтертанивной функции #10 для пина #7 будет выглядеть так:
Код
GPIOn->AFRL &= ~(0xF0000000); // Сброс битов альтертанивных функций для пина
GPIOn->AFRL |= (0xA0000000); // Выставляем биты регистра

Либо
Код
GPIOn->AFRL &= ~(0x0F << 28); // То же, но с предварительными сдвигами.
GPIOn->AFRL |= (0x0A << 28); // То же, но со сдвигом.


Сообщение отредактировал AlanDrakes - Oct 20 2015, 10:18
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- allsettingsdone   Как вы работаете с регистрами GPIOx_AFR?   Oct 20 2015, 08:11
- - Golikov A.   Некоторые пользуются для этого кубом, но путь наст...   Oct 20 2015, 08:15
|- - scifi   Цитата(Golikov A. @ Oct 20 2015, 11:15) п...   Oct 20 2015, 08:29
- - smalcom   SPL )   Oct 20 2015, 08:41
- - allsettingsdone   Как узнать число, которое нужно записать в AFRH9 и...   Oct 20 2015, 08:51
|- - ЯadiatoR   Цитата(allsettingsdone @ Oct 20 2015, 11...   Oct 20 2015, 09:24
- - Genadi Zawidowski   Или так... Код #define arm_stm32f30x_hardware_pi...   Oct 20 2015, 08:53
- - ViKo   Типа того. Раньше для альтернативных функций конкр...   Oct 20 2015, 08:56
- - Golikov A.   ну и есть дефайн AF0-AF15, его надо использовать в...   Oct 20 2015, 11:23
- - Эдди   В opencm3 нужные макросы есть. И даже функции врод...   Oct 20 2015, 11:24
- - esaulenka   Цитата(allsettingsdone @ Oct 20 2015, 11...   Oct 21 2015, 11:44
- - Golikov A.   а как этот правильный путь поможет задать альтерна...   Oct 21 2015, 13:12
|- - AHTOXA   Цитата(Golikov A. @ Oct 21 2015, 18:12) а...   Oct 21 2015, 14:46
|- - esaulenka   Цитата(Golikov A. @ Oct 21 2015, 16:12) а...   Oct 22 2015, 06:22
|- - den_po   Цитата(esaulenka @ Oct 22 2015, 09:22) Ес...   Oct 27 2015, 08:03
|- - AHTOXA   Дам ссылку на уже упомянутую в этой теме мою библ...   Oct 27 2015, 08:57
- - Golikov A.   ну это так докопаться....   Oct 21 2015, 14:47
- - adnega   Инициализирую все выводы в одном месте init_GPIO()...   Oct 22 2015, 07:15
- - Alechek   Инициалиация в одном месте хорошо. Но иногда не пр...   Oct 26 2015, 08:52


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th August 2025 - 12:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01375 секунд с 7
ELECTRONIX ©2004-2016