книги / Программирование микроконтроллеров с использованием IDE
..pdfНажимаем на звездочку (рис. 2.37).
Рис. 2.37. Завершение выбора микроконтроллера STM32F401RE
в STM32CubeMX
Важно не задеть в Board гиперссылку
,
иначе откроется ненужное нам пока окно с платой NUCLEO, о которой речь пойдет далее. Нажимаем Start Project (рис. 2.38).
Рис. 2.38. Начало создания проекта на микроконтроллере
STM32F401RE в STM32CubeMX
51
Открывается Pinout view с обозначениями выводов микросхемы
(рис. 2.39).
Рис. 2.39. Начало настройки микроконтроллера STM32F401RE
в STM32CubeMX
Находим вывод PA0 и указываем режим GPIO_Input, кликнув левой кнопкой мыши по кнопке. Также кликаем на вывод PC0
и указываем режим GPIO_Output (рис. 2.40).
Рис. 2.40. Настройка выводов микроконтроллера STM32F401RE в STM32CubeMX для моделирования ввода-вывода
52
Правой кнопкой мыши по требуемому выводу можно открыть меню Enter UserLabel для задания свои надписей на английском языке (рис. 2.41).
Рис. 2.41. Настройка названий выводов для моделирования ввода-вывода
Изменяем метки на MY_IN0 и MY_OUT0 для PA0 и PC0 соответственно. Получаем (рис. 2.42).
Рис. 2.42. Полученные названия выводов для моделирования ввода-вывода
Именно эти символы (MY_IN0, MY_OUT0) и будут использованы в программе. Иначе компилирование не пройдёт!
Далее указываем использование внутреннего кристалла для управления частотой System Core, RCC, задаем внешний кварцевый резонатор (рис. 2.43).
53
Рис. 2.43. Настройка тактового генератора для моделирования ввода-вывода
Переходим на вкладку Project Manager (рис. 2.44).
Рис. 2.44. Настройка Project Manager для моделирования ввода-вывода
Указываем название проекта, расположение, Toolchain / IDE,
выбрать MDK-ARM.
54
2.2. Программа ввода-вывода
Нажимаем на кнопку GENERATE CODE (рис. 2.45).
Рис. 2.45. Генерирование кода для моделирования ввода-вывода
55
После этого программе потребуется скачать несколько дополнительных пакетов. Соглашаемся:
Пойдёт загрузка необходимых пакетов:
После скачивания и успешной генерации кода предлагается открыть папку или проект. Нажимаем Open Project (рис. 2.46).
Рис. 2.46. Завершение настройки в CubeMX кода для моделирования ввода-вывода
56
На этом работа с CubeMX завершена. Нажимаем кнопку Open Project в CubeMX, откроется uVision IDE и Pack Installer. Будет предложено скачать недостающие пакеты. Соглашаемся и ждём загрузки (рис. 2.47).
Рис. 2.47. Открытие проекта для моделирования ввода-вывода.
Состояние отображается внизу Pack Installer-а:
Ждём завершения загрузки (рис. 2.48).
Рис. 2.48. Завершение загрузки при открытии проекта для моделирования ввода-вывода
57
Далее переходим в папку
1)Application/User/Core,
2)дважды щёлкнем по main.c
Находим в функции main цикл while (1) и
3) вставляем готовый код передачи состояния вывода
MY_IN0 на вывод MY_OUT0 между комментариями в шаблоне: HAL_GPIO_WritePin(MY_OUT0_GPIO_Port, MY_OUT0_Pin, HAL_GPIO_ReadPin(MY_IN0_GPIO_Port, MY_IN0_Pin));
HAL_Delay(25);
В этой программе:
GPIO (general-purpose I/O port) – это порты ввода-вывода общего назначения; HAL (Hardware Abstraction Layer) – это библиотека аппаратуры;
ReadPin – чтение состояния вывода; WritePin – запись (вывод) состояния; Delay – временная задержка.
4) После чего нажимаем на кнопку Build. Эти обозначенные красным этапы показаны на рис. 2.49.
Рис. 2.49. Завершение программирования для моделирования ввода-вывода: вставлена готовая программа ввода-вывода
При успешной компиляции проекта можно переходить к работе с Proteus.
58
2.3. Схема ввода-вывода
Proteus необходимо запускать с правами Администратора, иначе могут быть проблемы с необходимыми библиотеками. После открытия Proteus нажимаем File –> New Project. Даём имя проекту и нажимаем Next (рис. 2.50).
Рис. 2.50. Начало создания проекта в Proteus
Оставляем как есть, нажимаем Next (рис. 2.51).
Рис. 2.51. Второй шаг создания проекта в Proteus
59
Оставляем как есть, нажимаем Next (рис. 2.52).
Рис. 2.52. Третий шаг создания проекта в Proteus
Далее выбираем Create Firmware Project и ищем STM32F401RE. Не забываемубрать Create Quick Start Files. Нажимаем Next (рис. 2.53).
Рис. 2.53. Четвертый шаг создания проекта в Proteus
60