Работа с MicroXplorer
У всех контроллеров STM32 очень много ног. Это конечно же хорошо, отпадает необходимость наращивать количество ножек при помощи сдвиговых регистров и расширителей портов. Но иногда из-за их большого количества возникает путаница. Большинству периферийных устройств типа АЦП, UARTов итд необходимы ноги контроллера для работы, и бывает такая ситуация когда два блока периферии претендуют на одну и ту же ногу. Естественно одновременно использовать её они не могут и тут у нас есть два выхода из ситуации:
- Использовать другой аналогичный блок периферии (второй UART например)
- Использовать ремап
С первым пунктом всё понятно, а вот что же такое remap в STM32 ? В двух словах: Ремап позволяет какому-либо блоку периферии использовать для своих целей другие (но тоже жестко заданные) ноги контроллера. Чтоб смотреть что куда ремапится надо лазить в даташит и искать это там. Для того чтоб узнать какая периферия использует одинаковые ноги надо опять смотреть даташит. А можно не открывать его по таким пустякам, а просто заюзать неплохую программку от ST под названием MicroXplorer
Как с этим работать ?
Первым делом надо выбрать контроллер. Сделать это можно двумя способами: File -> New config или Tools -> MCUs Selector. В первом случае вы должны знать как называется ваш контроллер и просто выбрать его из огромного списка. Второй способо позволяет вам найти контроллер с заданным набором периферии. Хочу я контроллер контроллер с эзернетом и поддержкой NAND флешек и вуаля:
Когда контроллер выбран можно начинать планирование использования ножек. У меня на всех картинках ниже выбран контроллер STM32F100RB, так что если вы выбрали что-то другое не удивляйтесь различиям. В панели слева выберем что мы хотим использовать USART3, и сразу же станет ясно, что если мы юзаем USART3 то одновременно с ним не получиться использовать I2C2 который висит на тех же самых ногах.
Но можно сделать ремап ног USART3, для этого удерживаем CTRL и нажимаем на любую из двух ног. Синим цветом будет подсвечиваться нога куда можно перетащить ту ногу на которую мы жмем в данный момент. При перетаскивании одной ноги вместе с ней перетащится и вторая, это нормально. После перетаскивания ноги PB10 и PB11 освободятся, и можно будет настроить на них I2C2:
Желтый треугольник около USART3 означает, что при такой конфигурации ножек нельзя заюзать некоторые режимы USARTa, поскольку они требуют дополнительных ног, а они видимо не ремапятся. Программа явно не доработана, в ней отсутствуют некоторые функции, а кнопки для них уже сделаны но недоступны. Из доступных функций есть еще функция сохранения отчета в формате PDF и TXT, считаю её не очень полезной. В завершении всего этого хочу сказать что программа в целом нужная, рекомендую скачать.