- Главная
- Форум
- О компании
- Новости компании
- Программирование STM32 с помощью мышки. Новая утилита STM32CubeMX.
- Форум
- О компании
- Новости компании
- Программирование STM32 с помощью мышки. Новая утилита STM32CubeMX.
Программирование STM32 с помощью мышки. Новая утилита STM32CubeMX.
- Alena
- Автор темы
- Посетитель
Компания STMicroelectronics, занимающая лидирующее положение на рынке микроконтроллеров на базе ядер Cortex-M, выпустила новую утилиту для быстрой генерации кода настройки периферии STM32.
Скачать утилиту, а также необходимую документацию можно здесь.
В настоящее время можно генерировать код для двух семейств микроконтроллеров: STM32F2 и STM32F4. В будущем в это ПО будут включены абсолютно все семейства STM32. Данная утилита станет заменой устоявшегося решения в виде стандартной библиотеки периферии. Переход от одного к другому будет максимально безболезненным.
После установки STM32CubeMX попробуем сгенерировать проект. Запускаем программу и выбираем «New Project».
Рис 1. Проект STM32CubeMX.
Выбираем семейство (рис2). Полноценный генератор кода есть на STM32F2 и STM32F4. На остальных семействах STM32CubeMX также работает, но в усечённом виде.
Рис 2. Выбор семейства STM32
После ввода подсемейства вводим применяемый корпус (рис 3).
Рис 3. Выбор корпуса контроллера
Обращаем внимание, что при выборе семейства, подсемейства и корпуса контроллера меняется представление периферии и выбор возможной модели контроллера.
После выбора конкретной модели контроллера мы попадаем в уже известную утилиту «MicroXplorer», в которой можно определить используемые выводы.
Рис 4. Определение выводов микроконтроллера
Параллельно с настройкой портов ввода-вывода вводим некоторые свойства периферии:
Рис 5. Ввод свойств периферии
На следующей вкладке настраиваем тактирование. Автору не удалось настроить тактирование от внешнего кварца, вероятно в будущем это станет возможным.
Рис 6. Настройка тактирования
Переходим на вкладку «Configuration». Здесь уже отражена выбранная нами периферия. Тут же можно настроить связи периферии, например запускать АЦП по переполнению таймера, связи контроллера прямого доступа к памяти и прерывания.
Рис 7. Настройка DMA
После выбора на вкладке контроллера DMA (1 или 2) программа с учётом выбранной вами ранее периферии предложит назначить источник запроса на копирование. Здесь же можно указать другие параметры копирования: циклическое/нормальное, направление копирования, требование инкремента адреса источника/приёмника и т.д.
Прерывания также можно настраивать щелчками мыши:
Рис 8. Настройка прерываний
Выдаваемый список прерываний также согласован с выбранной ранее периферией. Вверху окна можно задать уровень вложенности прерываний и в соответствии с этим присвоить разрешённому прерыванию (в нашем случае это «переполнение таймера 1») группу и подгруппу.
Далее, настраиваем периферию (у нас это таймер 1, АЦП1 и Уарт2)
Рис 9. Настройка таймера
Вводим параметры, характерные для таймеров: направление счёта, предделитель, период счёта и т.д. Не забываем, при этом пройтись по всем вкладкам («NVIC Settings», «GPIO Settings» «DMA Settings»)
Далее генерируем проект, нажав на выделенный элемент и заполнив необходимые параметры (название, путь, среда проекта и т.д):
Рис 10. Генерация кода проекта
После генерации кода в указанном месте появятся 2 папки «SRC» и «INC» с файлами настроек.
Для примера рассмотрим сгенерированный код инициализации таймера:
void MX_TIM1_Init(void)
{
TIM_ClockConfigTypeDef sClockSourceConfig;
TIM_OC_InitTypeDef sConfigOC;
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig;
TIM_MasterConfigTypeDef sMasterConfig;
htim1.Instance = TIM1;
htim1.Init.Prescaler = 0;
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
htim1.Init.Period = 5000;
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim1.Init.RepetitionCounter = 0;
HAL_TIM_Base_Init(&htim1);
……………..
Данная функция физически находится в файле main.c и вызывается из функции int main(void) на старте. Нетрудно заметить, что название функций изменилось. Например, вместо TIM_Base_Init(TIM1, &htim1) теперь используется HAL_TIM_Base_Init(&htim1). Тем не менее общая идеология библиотек стандартной периферии и используемых утилитой STM32CubeMX легко угадывается.
Сами файлы библиотек можно скачать непосредственно со страницы применяемого контроллера. В нашем случае это пакет STM32F2Cube здесь.
В целом можно констатировать, что освоение и без того удачных микроконтроллеров STM32 становится более простым. Отныне программист должен щёлкать мышкой, а не копировать куски программ из папки стандартной библиотеки с последующей доработкой под свои потребности.
Получить более подробную информацию по продукции STMicroelectronics вы можете, обратившись:
E-mail: Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
Телефон: (343) 372-92-30
Задать вопрос техподдержке вы можете на нашем форуме.
- Форум
- О компании
- Новости компании
- Программирование STM32 с помощью мышки. Новая утилита STM32CubeMX.