Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F407VGT6
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
gazpar
Все UART/USART в stm32f407 имеют две пары пинов,к которым можно подключиться.
( USART3_Tx_PD8 | USART3_Rx_PD9 ) VS ( USART3_Tx_PB10 | USART3_Rx_PB11 )
Моя проблема заключается в том,что в паре ( USART3_Tx_PB10 | USART3_Rx_PB11 ) USART функционирует как положено.Передаёт данные и поллингом и по прерыванию,принимает данные по прерыванию.
Когда перенастраиваю USART3 на вторую пару пинов ( USART3_Tx_PD8 | USART3_Rx_PD9 ),поллинг и прерывание по передаче работают.А вот прерывание по приёму не наступает.

Кто-нибудь сталкивался с подобной проблемою?Чем это может быть вызвано?
Golikov A.
а прием сам работает?
если нет, то ногу не настроили на вход правильно... или ее функция блокируется какой-то смежной периферией настроенный на эту же ногу где-то в другом месте...
gazpar
Цитата(Golikov A. @ Jan 26 2015, 20:26) *
а прием сам работает?
если нет, то ногу не настроили на вход правильно... или ее функция блокируется какой-то смежной периферией настроенный на эту же ногу где-то в другом месте...

Сам приём работает только на паре пинов ( USART3_Tx_PB10 | USART3_Rx_PB11 ).

Настройка пинов:
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_8;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_Init(GPIOD, &GPIO_InitStructure);


Никакой доп.периферии,после настройки USART, на эти пины не подключается.
Сергей Борщ
Цитата(gazpar @ Jan 27 2015, 06:31) *
Никакой доп.периферии,после настройки USART, на эти пины не подключается.
А вы можете убедиться в этом, посмотрев в отладчике содержимое регистров MODER, AFR? Причем и для PD9 и для PB11, чтобы не получилось, что у вас обе эти ноги настроены как входы приемника и конфликтуют внутри кристалла. И еще PC11 проверьте - на него тоже выведен USART3_RX
Golikov A.
а вход UART должен быть просто GPIO, как тогда проц определяет какую из 3 возможных ног подключить к UART входу?
не глупость написал, выше объявляется как альтернатива...

ну тогда да смотреть конфликт с другими ногами
Integro
Цитата(gazpar @ Jan 27 2015, 07:31) *
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_8;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_Init(GPIOD, &GPIO_InitStructure);


Не вижу вызов функции GPIO_PinAFConfig и настройку прерывания по приему.
gazpar
Цитата(Сергей Борщ @ Jan 27 2015, 10:17) *
А вы можете убедиться в этом, посмотрев в отладчике содержимое регистров MODER, AFR


Благодарю за подсказку,дельный совет.
С USART3 разобрался,всё работает.
В чём была проблема так и не понял...Сегодня пришёл на работу на авось решил скомпилять->залил->всё заработало.В дебаге проверил: прерывание стало срабатывать и выгребать данные(проверял второй платой и логгером),проверка регистров MODER, AFR не потребовалась.
Вероятно,не работало из-за того,что долго не перезагружал комп,поэтому стал криво работать компилятор.Хотя кто его знает.

В общем,всем СПАСИБО за помощь!!!
DmitryM
Цитата(gazpar @ Jan 27 2015, 18:00) *
Благодарю за подсказку,дельный совет.
С USART3 разобрался,всё работает.
В чём была проблема так и не понял...Сегодня пришёл на работу на авось решил скомпилять->залил->всё заработало.В дебаге проверил: прерывание стало срабатывать и выгребать данные(проверял второй платой и логгером),проверка регистров MODER, AFR не потребовалась.
Вероятно,не работало из-за того,что долго не перезагружал комп,поэтому стал криво работать компилятор.Хотя кто его знает.

В общем,всем СПАСИБО за помощь!!!


Классика, в RHR застряли данные и при инициализации их не вычитали. Хана прерываниям.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.