Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кармин Новиелло - Освоение STM32.pdf
Скачиваний:
2741
Добавлен:
23.09.2021
Размер:
47.68 Mб
Скачать

Инструмент STM32CubeMX

103

CubeMX автоматически сгенерирует код инициализации Си для всех периферийных устройств, доступных на плате, а не только для тех, которые имеют отношение к пользовательскому приложению. Например, платы Nucleo имеют USART (USART2), подключенный к интерфейсу ST-LINK, который отображает его как виртуальный COM-порт. Если этот флажок установлен, CubeMX должен сгенерировать весь необходимый код для инициализации USART.

Это может показаться хорошей функцией для включения, но для новичков лучше оставить данную функцию отключенной и включать каждое периферийное устройство вручную только при необходимости. Это упрощает процесс обучения и позволяет не тратить много времени, пытаясь сразу понять сгенерированный код.

Рисунок 4: Представление Chip в CubeMX

Как только мы выбрали микроконтроллер (или отладочную плату) для работы, появится главное окно CubeMX, показанное на рисунке 4. В представлении преобладает симпатичный графический вид микроконтроллера STM32. Даже в этом случае у представления есть вкладки. Давайте рассмотрим каждую вкладку более подробно.

4.1.1. Представление Pinout

Представление Pinout («Распиновка») является первым и разделено на две части. Правая сторона содержит вид микроконтроллера с выбранными периферийными устройствами и GPIO, и ST называет его представлением Chip. В левой части у нас есть список в виде дерева всех периферийных устройств (аппаратных компонентов) и промежуточных библиотек (программных компонентов), которые можно использовать с выбранным микроконтроллером. ST называет его IP tree pane.

Инструмент STM32CubeMX

104

4.1.1.1.Представление Chip

Представление Chip («Микросхема») позволяет легко ориентироваться в конфигурации микроконтроллера и является действительно удобным способом его конфигурации.

Выводы5, окрашенные в ярко-зеленый цвет, включены. Это означает, что CubeMX сгенерирует необходимый код для конфигурации данного вывода в соответствии с его функциональными возможностями. Например, для вывода PA5 CubeMX сгенерирует код на языке Си, необходимый для его конфигурации в качестве выхода общего назначения6.

Вывод окрашен в оранжевый цвет, когда соответствующее ему периферийное устройство не включено. Например, выводы PA27 и PA3 включены, и CubeMX сгенерирует соответствующий код Си для их инициализации, но соответствующие периферийные устройства (USART2) не включены, поэтому код конфигурации для них не будет создан автоматически. Желтые выводы являются выводами источника питания, а значит их конфигурация не может быть изменена.

Выводы BOOT и RESET окрашены в цвета хаки, и их конфигурация не может быть изменена.

Рисунок 5: Контекстные подсказки помогают понять использование сигнала

При перемещении курсора мыши над выводами появляется контекстная всплывающая подсказка (см. рисунок 5). Например, контекстная подсказка для вывода PB3 говорит нам, что сигнал отображается на интерфейс Serial Wire Debug (SWD) и служит выводом Serial Wire Output (SWO). Кроме того, также показан номер вывода (55).

Рисунок 6: Альтернативное отображение периферийных устройств

Микроконтроллеры STM32 позволяют подключать периферийные устройства к различным выводам. Например, в микроконтроллере STM32F401xE сигнал MOSI интерфейса SPI2 может отображаться на выводы PC2 или PB14. CubeMX позволяет легко увидеть разрешенные альтернативы с помощью Ctrl+клик. Если существует альтернативный вывод, он подсвечивается голубым цветом (альтернатива показывается только в том случае,

5В данном контексте вывод и сигнал могут использоваться как синонимы.

6За исключением Nucleo-F302, где LD2 подключен к выводу PB13. Подробнее об этом позже в данной главе.

7Конфигурации выводов, показанные в данном разделе, относятся к микроконтроллеру STM32F401RE.

Инструмент STM32CubeMX

105

если вывод не находится в состоянии после сброса, то есть активирован). Например, на рисунке 6 мы видим, что, если мы нажмем Ctrl+клик на выводе PC2, то сигнал PB14 будет выделен голубым цветом. Это очень удобно при разметке платы. Если действительно сложно направить сигнал на данный вывод, или если этот вывод необходим для какой-либо другой функциональности, альтернативный вывод может упростить плату.

Рисунок 7: Альтернативные функции вывода

Таким же образом, большинство выводов микроконтроллера могут иметь альтернативные функции. При нажатии на вывод отображается контекстное меню. Оно позволяет нам выбрать интересующую нас функцию для выбранного сигнала.

Такая гибкость приводит к возникновению конфликтов между функциями сигналов. CubeMX пытается разрешить эти конфликты автоматически, назначив сигнал другому выводу. Закрепленные сигналы – это те выводы, функциональность которых привязана к определенному выводу, что не позволяет CubeMX выбирать альтернативный вывод. Когда конфликт препятствует использованию периферийного устройства, режим вывода в представлении Chip отключается, а вывод окрашивается в оранжевый цвет.

4.1.1.2.IP tree pane

IP tree pane (Панель с деревом IP) предоставляет удобный способ включить/отключить и сконфигурировать нужные периферийные устройства и промежуточное программное обеспечение. CubeMX показывает список периферийных устройств наглядным образом, используя значки и разные цвета, чтобы пользователь мог быстро понять, доступно ли периферийное устройство и какие у него есть возможности конфигурации. Давайте посмотрим на них подробно.

Таблица 1: Способ отображения периферийных устройств на IP tree pane в CubeMX

Случай

Отображение

Состояние периферийного устройства

 

 

 

1

 

Периферия не сконфигурирована (не установлен режим) и

 

доступны все режимы.

 

 

 

 

Периферия не сконфигурирована (не установлен режим) и

2

 

режимы недоступны. Наведите курсор мыши на название IP,

 

 

чтобы отобразить подсказку, описывающую конфликт.

3

 

Периферия не сконфигурирована (не установлен режим) и по

 

крайней мере один из ее режимов недоступен.

 

 

4

 

Периферия не доступна вообще

5

 

Периферия сконфигурирована (установлен хотя бы один

 

режим) и доступны все остальные режимы

 

 

6

Периферия сконфигурирована (установлен один режим), и по

крайней мере один из ее других режимов недоступен.

 

Инструмент STM32CubeMX

106

Таблица 1: Способ отображения периферийных устройств на IP tree pane в CubeMX

 

 

(продолжение)

Случай

Отображение

Статус периферийного устройства

 

 

 

7

8

Доступные конфигурации режимов периферии показаны черным цветом.

Предупреждающий желтый значок указывает, что по крайней мере одна конфигурация режима больше не доступна.

Случай 1: указывает на то, что периферийное устройство доступно и в данный момент отключено, и могут использоваться все его возможные режимы. Например, в случае интерфейса I²C все возможные режимы для данного периферийного устройства: I²C, SMBus-Alert-mode, SMBus-two-wire-interface (TWI).

Случай 2: показывает, что периферийное устройство запрещено из-за конфликта с другим периферийным устройством. Это означает, что оба периферийных устройства используют одни и те же GPIO, и их невозможно использовать одновременно. Если навести на него курсор мыши, появится другое периферийное устройство, вовлеченное в конфликт. Например, для микроконтроллера STM32F401RE невозможно использовать отладочные выводы SWD и I2C2 одновременно.

Случай 3: указывает, что периферийное устройство доступно и в настоящее время отключено, но по крайней мере один из его режимов недоступен из-за конфликта с другими периферийными устройствами. Например, в микроконтроллере STM32F401RE канал 4 периферийного устройства TIM2 использует GPIO PA2, который является сигналом USART_RX периферийного устройства USART2. Это означает, что вы не можете использовать канал 4 таймера TIM2 в режиме захвата входного сигнала при использовании порта VCP Nucleo.

Случай 4: указывает на то, что периферийное устройство недоступно для выбранного типа корпуса (если вам крайне необходимо данное периферийное устройство, тогда вам нужно переключиться на другой тип корпуса – обычно с большим количеством выводов).

Случай 5: указывает на то, что периферийное устройство используется, и доступны все его режимы (см. случай 7).

Случай 6: показывает, что периферийное устройство используется, но некоторые из его режимов или вводов/выводов недоступны (см. случаи 3 и 8).

Случай 7: когда все периферийные режимы доступны, все параметры конфигурации отображаются черным цветом.

Случай 8: когда не все периферийные режимы доступны, недоступные параметры конфигурации отображаются на красном фоне.