Easyelectronics.ru

Электроника для всех
Текущее время: 29 окт 2020, 22:22

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: STM32F2xx, STM32F4xx: правда про re-mapping, где она?
СообщениеДобавлено: 20 июл 2012, 16:28 
Старожил

Зарегистрирован: 14 мар 2012, 13:58
Сообщения: 1727
По тому, что почитал в сети, сложилось ощущение, что UART можно положить на (практически) любые пины, главное, чтобы только не были заняты снаружи чужим железом и было простыми GPIO.

Но вот не хочет уартить у меня, хотя проверял, что пины у игрушки снаружи выведены ("помигал светодиодом"). Инициализирую УАРТ вот так:
Код:
void UART3Init(void)
{
   USART_InitTypeDef USART_InitStructure;
   GPIO_InitTypeDef  GPIO_InitStructure;

   RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);

   GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_USART3);
   GPIO_PinAFConfig(GPIOC, GPIO_PinSource12, GPIO_AF_USART3);

   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 = GPIO_Pin_11;         // PC11 = TX
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
   GPIO_Init(GPIOC, &GPIO_InitStructure);

   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;         // PC12 = RX
   GPIO_Init(GPIOC, &GPIO_InitStructure);

   USART_InitStructure.USART_BaudRate = 230400;
   USART_InitStructure.USART_WordLength = USART_WordLength_8b;
   USART_InitStructure.USART_StopBits = USART_StopBits_1;
   USART_InitStructure.USART_Parity = USART_Parity_No;
   USART_InitStructure.USART_HardwareFlowControl =   USART_HardwareFlowControl_None;
   USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

   USART_Init(USART3, &USART_InitStructure);

   /* Enable USART */
   USART_Cmd(USART3, ENABLE);
}


А вот так шлю:
Код:
   UART3Init();
   while(1)
   {
      while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET);
      USART_SendData(USART3, (uint8_t)'A');
   }

Надеюсь, что просто туплю.

На другом железе PD8/PD9 работало.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F2xx, STM32F4xx: правда про re-mapping, где она?
СообщениеДобавлено: 20 июл 2012, 17:20 
Старожил

Зарегистрирован: 25 апр 2010, 10:13
Сообщения: 1927
Откуда: Томск
dima2611 писал(а):


void UART3Init(void)
{
GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_USART3);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource12, GPIO_AF_USART3);

[скушал мышь]
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; // PC11 = TX
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; // PC12 = RX
GPIO_Init(GPIOC, &GPIO_InitStructure);

[скушал мышь]

}
Надеюсь, что просто туплю.


Угу, тупишь ;) AF забыл указать, и с номерами ошибся USART3_TX - PC10, USART3_RX - PC11

_________________
Какое небо голубое....(с) лиса Алиса


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F2xx, STM32F4xx: правда про re-mapping, где она?
СообщениеДобавлено: 20 июл 2012, 17:40 
Старожил

Зарегистрирован: 14 мар 2012, 13:58
Сообщения: 1727
Так указано же всё это :)

Цитата:
GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_USART3);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource12, GPIO_AF_USART3);

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 = GPIO_Pin_11; // PC11 = TX
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; // PC12 = RX
GPIO_Init(GPIOC, &GPIO_InitStructure);


Что до номеров, то я уже догадываюсь, что "свобода" в ремаппинге тоже типа осознанной необходимости, и что для UART3 возможны лишь PB10/11 и PC10/11 (ст. 59 мануала).

На PC10/11 заработало. Так вот где же прописаны в мануале какие пины возможны для каких периферий?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F2xx, STM32F4xx: правда про re-mapping, где она?
СообщениеДобавлено: 20 июл 2012, 17:46 
Старожил

Зарегистрирован: 25 апр 2010, 10:13
Сообщения: 1927
Откуда: Томск
Угу, а еще PD8/PD9, если конечно они есть в твоём корпусе.

_________________
Какое небо голубое....(с) лиса Алиса


Последний раз редактировалось hardegor 20 июл 2012, 17:52, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F2xx, STM32F4xx: правда про re-mapping, где она?
СообщениеДобавлено: 20 июл 2012, 17:51 
Старожил

Зарегистрирован: 14 мар 2012, 13:58
Сообщения: 1727
hardegor писал(а):
Угу, а еще PD8/PD9, если конечно они есть в твоём корпусе.

"Имя, сестра, имя!"

В интернете в форумах такая инфа проскакивает
Цитата:
The USART3 PB10/PB11 is the default mapping, the remapped locations would be PD8/PD9, right? In which case you'd need to initialize those pins. If you really want PB10/PB11 then don't remap the USART3 some place else.

https://my.st.com/public/STe2ecommuniti ... views=1099


но где она в мануале? Или если не там, то где?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F2xx, STM32F4xx: правда про re-mapping, где она?
СообщениеДобавлено: 20 июл 2012, 17:56 
Старожил

Зарегистрирован: 25 апр 2010, 10:13
Сообщения: 1927
Откуда: Томск
dima2611 писал(а):
hardegor писал(а):
Угу, а еще PD8/PD9, если конечно они есть в твоём корпусе.

"Имя, сестра, имя!"
но где она в мануале? Или если не там, то где?


Советую не пользоваться всякими "левыми таблицами, составленными правой пяткой какими-то непонятными людьми", а читать первоисточники.
Находятся они здесь http://www.st.com/internet/mcu/subclass/1520.jsp там ты найдешь Data Sheet в которых это написано, и Reference Manual в которых подробно написано как программировать всё богатство.
Вложение:
stm32f205.jpg
stm32f205.jpg [ 36.5 Кб | Просмотров: 4219 ]

Эээ, что значит "какие пины для каких переферий?"
В даташите смотришь большую таблицу "Alternate function mapping".
Потом смотришь в каком корпусе твой процессор и есть ли там все порты PA, PB, и т.д.
Я обычно ищу по таблицам pinout. А еще пользуюсь программкой microXplorer

_________________
Какое небо голубое....(с) лиса Алиса


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F2xx, STM32F4xx: правда про re-mapping, где она?
СообщениеДобавлено: 20 июл 2012, 18:02 
Старожил

Зарегистрирован: 14 мар 2012, 13:58
Сообщения: 1727
hardegor писал(а):
dima2611 писал(а):
hardegor писал(а):
Угу, а еще PD8/PD9, если конечно они есть в твоём корпусе.

"Имя, сестра, имя!"
но где она в мануале? Или если не там, то где?


Советую не пользоваться всякими "левыми таблицами, составленными правой пяткой какими-то непонятными людьми", а читать первоисточники.
Находятся они здесь http://www.st.com/internet/mcu/subclass/1520.jsp там ты найдешь Data Sheet в которых это написано, и Reference Manual в которых подробно написано как программировать всё богатство.

Эээ, что значит "какие пины для каких переферий?"
В даташите смотришь большую таблицу "Alternate function mapping".
Потом смотришь в каком корпусе твой процессор и есть ли там все порты PA, PB, и т.д.
Я обычно ищу по таблицам pinout. А еще пользуюсь программкой microXplorer

Моя ошибка, что курил мануал (не левый, а что ни на есть оригинал) размером в 1315 страниц и брезговал даташитом в 180 страниц. В последнем как раз таблица про функции пинов. Например, про PC10 написано SPI3_SCK / I2S3_CK/ UART4_TX/SDIO_D2 / DCMI_D8 / USART3_TX/ EVENTOUT.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F2xx, STM32F4xx: правда про re-mapping, где она?
СообщениеДобавлено: 20 июл 2012, 18:04 
Старожил

Зарегистрирован: 25 апр 2010, 10:13
Сообщения: 1927
Откуда: Томск
Ура, нашлось!
Просто даташит составляется для более конкретных чипов, а референс мануал - для всего семейства.

_________________
Какое небо голубое....(с) лиса Алиса


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB