Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/10: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Tomy Stork
0 / 0 / 0
Регистрация: 27.06.2017
Сообщений: 2
1

STM32F2xx/STM32F4xx медленное переключение портов

30.06.2017, 23:41. Просмотров 1883. Ответов 2
Метки нет (Все метки)

Уже седьмой год програмирую под МК и раньше всегда сам решал проблемы, но теперь "капитулир" )))

Итак, Дино:
STM32F2xx/STM32F4xx подключенный к 8-ми битному порту некого устройства,
пропускная способность которого около 5 Мб в сек.
У STMки нужно постоянно переключать шину данных с выхода на вход или наоборот.
Я долго не мог понять почему передача данных такая медленная, примерно 100 кб в сек.
В конце-концов взял и замерил сколько тактов процессора МК занимают эти переключения.
Вот кусок кода переключения порта
Код
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
Результат - 775 тактов!!! Это просто ахринеть.
Можете сами проверить.
Как так???

На PIC18 это требовало 2-3 тактов процессора МК, правда там я программировал на ассемблере.
Но разница в сотни раз это уже перебор.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2017, 23:41
Ответы с готовыми решениями:

STM32F2xx, STM32F4xx: правда про re-mapping, где она?
По тому, что почитал в сети, сложилось ощущение, что UART можно положить на (практически) любые...

STM32F2xx RM0033 русский перевод
Начинаю осваивать ARM Для проекта выбрал STM32F207 Попутно перевожу RM0033 - выбранные главы...

Clock configuration tool for STM32F2xx microcontrollers
<Изображение удалено> Прикольная утилитка, производство ST, работает в EXСEL-е, на выходе...

Ошибка в stm32f4xx.h
Здравствуйте. Мое первое сообщение на форуме. Хотел было в сообщество отправить, но оказывется...

USART2 на STM32F4xx
Навичак в работе с STM32. Второй день бьюсь с простенькой задачей - выслать что-нибудь на ПК через...

2
Riftistor
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
30.06.2017, 23:59 2
Цитата Сообщение от Tony Stork
Результат - 775 тактов!!! Это просто ахринеть.
Можете сами проверить.
Как так???
Cедьмой год программирования под МК и не можешь сам посмотреть что делает GPIO_Init? А тебе нужно изменять один MODER...
0
Tomy Stork
0 / 0 / 0
Регистрация: 27.06.2017
Сообщений: 2
01.07.2017, 00:32 3
Я балбес и распиздяй.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2017, 00:32

STM32f4xx и вебсокеты — реально ли?
Планируем с коллегой прикупить пару макеток на STM32f4xx с ethernet на поиграться (в будущем...

STM32F4xx + SD + USB MSD [РЕШЕНО]
Добрый вечер! Помоги ответить на несколько вопросов? 1. Можно ли писать из контроллера (серия...

STM32F4xx DMA1 Stream 6 channel 3
Для одного из проектов протребовалось использовать DMA вместе с таймером 2. Алгоритм работы...


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

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

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