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

 
 
> объясните логику дефайна
Метценгерштейн
сообщение Jan 3 2013, 14:53
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



#define GPIO_OSPEEDER_OSPEEDR0 ((uint32_t)0x00000003)
#define GPIO_OSPEEDER_OSPEEDR0_0 ((uint32_t)0x00000001)
#define GPIO_OSPEEDER_OSPEEDR0_1 ((uint32_t)0x00000002)

текст
00: 400 kHz Very low speed
01: 2 MHz Low speed
10: 10 MHz Medium speed
11: 40 MHz High speed on 50 pF (50 MHz output max speed on 30 pF)

и так по всему файлу они дефайнят.
т.е., допустим, я в нулевом пине хочу выставить скорость 2 Мгц.
почему по их логике это режим ...OSPEEDR0_0 ?
Получается, мне надо все время в голове держать, что
_OSPEEDR0 - это bin 11
_OSPEEDR0_0 bin 01
_OSPEEDR0_1 bin 10
?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SSerge
сообщение Jan 3 2013, 16:57
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



По их (авторов StdPerifLib) логике Вы должны завести структуру, заполнить ей нужные поля и позвать функцию, которая сконфигурирует пин.
где-то так:
Код
{
  GPIO_InitTypeDef GPIO_InitStructure;
//...............
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;

  GPIO_InitStructure.GPIO_Pin = COM_TX_PIN[COM];
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(COM_TX_PORT[COM], &GPIO_InitStructure);


А те определения - это их внутреннее дело, Вам туда смотреть не обязательно.
Безобразно, конечно, но хотя бы единообразно.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:42
Рейтинг@Mail.ru


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