Пакет программного обеспечения STM32WL3x

Технические характеристики
- Название продукта: программный пакет STM32CubeWL3
- Совместимость: микроконтроллеры STM32WL3x
- Основные характеристики:
- API низкого уровня (LL) и уровня аппаратной абстракции (HAL)
- Компоненты промежуточного программного обеспечения ядра SigfoxTM, FatFS и FreeRTOSTM
- Приложения и демонстрации
Инструкции по применению продукта
Начиная
Чтобы начать использовать программный пакет STM32CubeWL3, выполните следующие действия:
- Загрузите пакет программного обеспечения с официального сайта webсайт.
- Установите необходимую среду разработки (например, STM32CubeIDE, EWARM, MDK-ARM).
- Ссылка на бывш.ampфайлы и приложения предоставлены для руководства.
Архитектура STM32CubeWL3 болееview
Программный пакет STM32CubeWL3 построен на трех основных уровнях
- Уровень 0: Уровень аппаратной абстракции (HAL) и драйверы BSP.
- Уровень 1: Приложения, библиотеки и компоненты на основе протоколов.
Часто задаваемые вопросы (FAQ)
В: Каковы основные возможности программного пакета STM32CubeWL3?
A: Основные функции включают в себя API низкого уровня и HAL, компоненты промежуточного программного обеспечения, такие как SigfoxTM, FatFS, ядро FreeRTOSTM, приложения и демонстрации.
Введение
STM32Cube — это оригинальная инициатива STMicroelectronics, направленная на значительное повышение производительности проектировщиков за счет сокращения усилий, времени и затрат на разработку. STM32Cube охватывает весь портфель STM32.
STM32Cube включает:
- Набор удобных для пользователя инструментов разработки программного обеспечения, охватывающих разработку проекта от концепции до реализации, среди которых:
- STM32CubeMX, графический инструмент конфигурации программного обеспечения, который позволяет автоматически генерировать код инициализации C с помощью графических мастеров.
- STM32CubeIDE, универсальный инструмент разработки с периферийной конфигурацией, генерацией кода, компиляцией кода и функциями отладки.
- STM32CubeCLT, универсальный набор инструментов для разработки с использованием командной строки, включающий компиляцию кода, программирование плат и функции отладки.
- STM32CubeProgrammer (STM32CubeProg), инструмент программирования, доступный в графической версии и версии для командной строки.
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), мощные инструменты мониторинга для точной настройки поведения и производительности приложений STM32 в режиме реального времени.
- Пакеты микроконтроллеров и микропроцессоров STM32Cube — комплексные платформы встроенного программного обеспечения, специфичные для каждой серии микроконтроллеров и микропроцессоров (например, STM32CubeWL3 для линейки продуктов STM32WL3x), включающие:
- Уровень аппаратной абстракции STM32Cube (HAL), обеспечивающий максимальную переносимость в портфеле STM32
- API-интерфейсы нижнего уровня STM32Cube, обеспечивающие наилучшую производительность и экономию места с высокой степенью контроля пользователя над оборудованием
- Последовательный набор компонентов промежуточного программного обеспечения, таких как ядро FreeRTOS™, FatFS и Sigfox™
- Все встроенные программные утилиты с полным набором периферийных и прикладных программ.ampле
- Пакеты расширения STM32Cube, которые содержат встроенные программные компоненты, которые дополняют функциональные возможности пакетов MCU и MPU STM32Cube:
-
- Расширения промежуточного программного обеспечения и прикладные уровни
- Exampфайлы, работающие на некоторых конкретных платах разработки STMicroelectronics
В этом руководстве пользователя описывается, как начать работу с пакетом микроконтроллера STM32CubeWL3.
В разделе 2 описываются основные функции STM32CubeWL3, а в разделе 3 дается более подробный обзор.view его архитектуры и структуры пакета MCU.
Общая информация
STM32CubeWL3 запускает демонстрационные приложения с частотой ниже ГГц, включая двоичные файлы Sigfox™, на микроконтроллерах линейки STM32WL3x на базе процессора Arm® Cortex®‑M0+.
Микроконтроллеры STM32WL3x оснащены новейшими периферийными радиочастотными устройствами STMicroelectronics, совместимыми с диапазоном менее ГГц, оптимизированными для сверхнизкого энергопотребления и превосходной производительности радиосвязи, что обеспечивает непревзойденный срок службы батареи.
Примечание: Arm является зарегистрированной торговой маркой Arm Limited (или ее дочерних компаний) в США и/или других странах.
Основные характеристики STM32CubeWL3
- Пакет микроконтроллера STM32CubeWL3 работает на 32-битных микроконтроллерах STM32 на базе процессора Arm® Cortex®‑M0+. Он объединяет в одном пакете все общие встроенные программные компоненты, необходимые для разработки приложения для линейки микроконтроллеров STM32WL3x.
- Пакет включает в себя API нижнего уровня (LL) и уровня аппаратной абстракции (HAL), которые охватывают аппаратное обеспечение микроконтроллера, а также обширный набор расширений.amples, работающие на платах STMicroelectronics. API HAL и LL доступны в лицензии BSD с открытым исходным кодом для удобства пользователя. Он также включает компоненты промежуточного программного обеспечения ядра Sigfox™, FatFS и FreeRTOS™.
- Пакет микроконтроллера STM32CubeWL3 также предоставляет несколько приложений и демонстраций, реализующих все его компоненты промежуточного программного обеспечения.
- Компоновка компонентов корпуса микроконтроллера STM32CubeWL3 показана на рисунке 1.
Рисунок 1. Компоненты корпуса микроконтроллера STM32CubeWL3

Архитектура STM32CubeWL3 болееview
Решение STM32CubeWL3 MCU Package построено на трех независимых уровнях, которые легко взаимодействуют, как показано на рисунке 2.
Уровень 0
Этот уровень разделен на три подслоя:
- Пакет поддержки совета директоров (BSP).
- Уровень аппаратной абстракции (HAL):
- Драйверы периферийных устройств HAL
- Драйверы низкого уровня
- Базовое использование периферийных устройствampлес.
Пакет поддержки совета директоров (BSP)
Этот уровень предлагает набор API относительно аппаратных компонентов в аппаратных платах (таких как светодиоды, кнопки и драйверы COM). Он состоит из двух частей:
- Компонент:
Это драйвер, относящийся к внешнему устройству на плате, а не к STM32. Драйвер компонента предоставляет определенные API для внешних компонентов драйвера BSP и может быть переносим на любую другую плату. - Драйвер БСП:
Он позволяет связать драйверы компонентов с конкретной платой и предоставляет набор удобных API. Правило именования API — BSP_FUNCT_Action().
Exampфайл: BSP_LED_Init(), BSP_LED_On()
BSP основан на модульной архитектуре, позволяющей легко переносить его на любое оборудование путем простой реализации низкоуровневых процедур.
Уровень абстракции оборудования (HAL) и нижний уровень (LL)
STM32CubeWL3 HAL и LL дополняют друг друга и охватывают широкий спектр требований приложений:
- Драйверы HAL предлагают высокоуровневые функционально-ориентированные API с высокой переносимостью. Они скрывают от конечного пользователя сложность MCU и периферийных устройств.
Драйверы HAL предоставляют универсальные многоэкземплярные API-интерфейсы, ориентированные на функции, которые упрощают реализацию пользовательских приложений, предоставляя готовые к использованию процессы. Напримерample, для периферийных устройств связи (I2C, UART и других) он предоставляет API, позволяющие инициализировать и настраивать периферийное устройство, управлять передачей данных на основе опроса, прерывания или процесса DMA, а также обрабатывать ошибки связи, которые могут возникнуть во время связи. API драйвера HAL делятся на две категории:
- Общие API, которые предоставляют общие и универсальные функции для всех микроконтроллеров серии STM32.
- API-интерфейсы расширений, которые предоставляют конкретные и настраиваемые функции для определенного семейства или определенного номера детали.
- API низкого уровня предоставляют API низкого уровня на уровне регистров с лучшей оптимизацией, но меньшей переносимостью. Они требуют глубоких знаний спецификаций MCU и периферийных устройств.
Драйверы LL созданы для обеспечения быстрого и легкого уровня, ориентированного на экспертов, который ближе к аппаратному обеспечению, чем HAL. В отличие от HAL, API-интерфейсы LL не предоставляются для периферийных устройств, для которых оптимизированный доступ не является ключевой функцией, или для тех, которые требуют сложной настройки программного обеспечения или сложного стека верхнего уровня.
Драйверы LL имеют следующие возможности:
- Набор функций для инициализации основных функций периферии в соответствии с параметрами, указанными в структурах данных.
- Набор функций для заполнения структур данных инициализации значениями сброса, соответствующими каждому полю.
- Функция деинициализации периферийных устройств (периферийные регистры восстанавливаются до значений по умолчанию).
- Набор встроенных функций для прямого и атомарного доступа к регистрам.
- Полная независимость от HAL и возможность использования в автономном режиме (без драйверов HAL).
- Полный охват поддерживаемых периферийных функций.
Базовое использование периферийных устройствampле
Этот слой заключает в себе бывшийampфайлы, построенные на периферийных устройствах STM32 с использованием только ресурсов HAL и BSP.
Демонстрация эксampФайлы также доступны для показа более сложных примеровampсценарии с определенными периферийными устройствами, такими как MRSUBG и LPAWUR.
Уровень 1
Этот уровень разделен на два подслоя:
- Компоненты промежуточного программного обеспечения
- Exampфайлы на основе компонентов промежуточного программного обеспечения
Компоненты промежуточного программного обеспечения
Промежуточное ПО представляет собой набор библиотек, охватывающих ядро FreeRTOS™, FatFS и библиотеку протоколов Sigfox™. Горизонтальное взаимодействие между компонентами этого уровня осуществляется путем вызова представленных API.
Вертикальное взаимодействие с драйверами нижнего уровня осуществляется посредством специальных обратных вызовов и статических макросов, реализованных в интерфейсе системных вызовов библиотеки.
Основные особенности каждого компонента промежуточного программного обеспечения следующие:
- Ядро FreeRTOS™: реализует операционную систему реального времени (RTOS), предназначенную для встраиваемых систем.
- Sigfox™: реализует библиотеку протоколов Sigfox™, совместимую с сетью протоколов Sigfox™, и включает библиотеку протоколов тестирования RF для тестирования с помощью инструментов RF Sigfox™.
- FatFS: реализует общую FAT file системный модуль.
Exampфайлы на основе компонентов промежуточного программного обеспечения
Каждый компонент промежуточного программного обеспечения поставляется с одним или несколькимиampфайлы, также называемые приложениями, показывающие, как его использовать. Интеграция exampТакже предоставляются файлы, использующие несколько компонентов промежуточного программного обеспечения.
Пакет прошивки STM32CubeWL3view
Поддерживаемые устройства и оборудование STM32WL3x
STM32Cube предлагает высокопортируемый уровень абстракции оборудования (HAL), построенный вокруг общей архитектуры. Он позволяет использовать принцип надстройки слоев, например, использовать уровень промежуточного программного обеспечения для реализации их функций без глубоких знаний о том, какой MCU используется. Это улучшает повторное использование кода библиотеки и обеспечивает легкую переносимость на другие устройства.
- Кроме того, благодаря своей многоуровневой архитектуре STM32CubeWL3 обеспечивает полную поддержку всей линейки продуктов STM32WL3x.
- Пользователь должен только определить правильный макрос в stm32wl3x.h.
Таблица 1 показывает макрос для определения в зависимости от используемого устройства линейки продуктов STM32WL3x. Этот макрос также должен быть определен в препроцессоре компилятора.
Таблица 1. Макросы для линейки продуктов STM32WL3x
| Макрос определен в stm32wl3x.h | Устройства линейки продуктов STM32WL3x |
| stm32wl33 | Микроконтроллеры STM32WL33xx |
STM32CubeWL3 имеет богатый набор эксampфайлы и приложения на всех уровнях, что позволяет легко понимать и использовать любой драйвер HAL или компоненты промежуточного программного обеспечения. Эти exampфайлы работают на платах STMicroelectronics, перечисленных в Таблице 2.
| Доска | Устройства, поддерживаемые платой STM32WL3x |
| NUCLEO-WL33CC1 | STM32WL33CC |
| NUCLEO-WL33CC2 | STM32WL33CC |
Пакет микроконтроллера STM32CubeWL3 может работать на любом совместимом оборудовании. Пользователи просто обновляют драйверы BSP для портирования предоставленного exampфайлы на своих платах, если они имеют одинаковые аппаратные функции (например, светодиоды или кнопки).
Пакет прошивок закончилсяview
Решение STM32CubeWL3 MCU Package поставляется в одном zip-архиве, структура которого показана на рисунке 3.
Рисунок 3. Структура пакета прошивки STM32CubeWL3

Осторожность:
Пользователь не должен изменять компоненты files. Пользователь может редактировать только исходные файлы \Projects.
Для каждой платы комплект экс.amples поставляется с предварительно настроенными проектами для наборов инструментов EWARM, MDK-ARM и STM32CubeIDE.
На рисунке 4 показана структура проекта для плат NUCLEO-WL33CCx. 
БывшийampФайлы классифицируются в зависимости от уровня STM32CubeWL3, к которому они применяются. Они именуются следующим образом:
- Уровень 0 exampфайлы называются Exampлес, бывшийamples_LL и Examples_MIX. Они используют соответственно драйверы HAL, драйверы LL и смесь драйверов HAL и LL без какого-либо компонента промежуточного программного обеспечения. Демонстрационный примерampтакже доступны файлы.
- Уровень 1 exampФайлы называются Приложениями. Они предоставляют типичные варианты использования каждого компонента промежуточного ПО.
Любое приложение прошивки для данной платы можно быстро создать с помощью шаблонов проектов, доступных в каталогах Templ ates и Templates_LL.
Exampлес, бывшийamples_LL и Examples_MIX имеют одинаковую структуру:
- Папка \Inc, содержащая все заголовки files.
- Папка \Src, содержащая исходный код.
- Папки \EWARM, \MDK-ARM и \STM32CubeIDE, содержащие предварительно настроенный проект для каждой цепочки инструментов.
- readme.md и readme.html, описывающие бывшегоampповедение и необходимая среда, чтобы заставить его работать.
Начало работы с STM32CubeWL3
Запуск первого бывшегоample
В этом разделе объясняется, как просто запустить первый example в STM32CubeWL3. В качестве иллюстрации используется генерация простого светодиодного переключателя, работающего на плате NUCLEO-WL33CC1:
- Загрузите пакет микроконтроллера STM32CubeWL3.
- Распакуйте его или запустите установщик, если он есть, в каталог по вашему выбору.
- Убедитесь, что вы не изменили структуру пакета, показанную на рисунке 3. Структура пакета прошивки STM32CubeWL3. Обратите внимание, что также рекомендуется копировать пакет в место, близкое к корневому тому (то есть C:\ST или G:\Tests), так как некоторые IDE сталкиваются с проблемами, если путь слишком длинный.
Как запустить HAL example
Перед загрузкой и запуском example, настоятельно рекомендуется прочитать exampчитай мне file для любой конкретной конфигурации.
- Перейдите в \Projects\NUCLEO-WL33CC\Exampлес.
- Откройте папки \GPIO, затем \GPIO_EXTI.
- Откройте проект с помощью предпочитаемого набора инструментов. Быстрый обзорview о том, как открыть, построить и запустить бывшийample с поддерживаемыми инструментальными цепочками приведен ниже.
- Восстановить все files и загрузите изображение в целевую память.
- Беги бывшегоample. Для более подробной информации см. exampчитай мне file.
Чтобы открыть, построить и запустить example с каждым из поддерживаемых наборов инструментов, выполните следующие действия:
- ЭВАРМ:
- Под бывшимampВ папке les откройте подпапку \EWARM.
- Запустите рабочую область Project.eww (имя рабочей области может измениться с одного на другое)ampперешел к другому).
- Восстановить все files: [Проект]>[Перестроить все].
- Загрузите образ проекта: [Проект]>[Отладка].
- Запустите программу: [Отладка]>[Перейти (F5)].
- МДК-АРМ:
- Под бывшимampВ папке les откройте подпапку \MDK-ARM.
- Откройте рабочую область Project.uvproj (имя рабочей области может отличаться от приведенного выше).ampперешел к другому).
- Восстановить все files: [Проект]>[Перестроить все целевые объекты fileс].
- Загрузите образ проекта: [Отладка]>[Начать/остановить сеанс отладки].
- Запустите программу: [Отладка]>[Выполнить (F5)].
- STM32CubeIDE:
- Откройте набор инструментов STM32CubeIDE.
- Нажмите на [File]>[Переключить рабочую область]>[Другое] и перейдите в каталог рабочей области STM32CubeIDE.
- Нажмите на [File]>[Импорт], выберите [Общие]>[Существующие проекты в рабочей области], а затем нажмите [Далее].
- Перейдите в каталог рабочей области STM32CubeIDE и выберите проект.
- Перестроить весь проект files: Выберите проект в окне Project Explorer, затем щелкните на
Меню [Проект]>[Создать проект]. - Запустите программу: [Выполнить]>[Отладка (F11)].
Разработка индивидуального приложения
Использование STM32CubeMX для разработки или обновления приложения.
В пакете микроконтроллера STM32Cube почти все проекты exampФайлы генерируются с помощью инструмента STM32CubeMX для инициализации системы, периферийных устройств и промежуточного программного обеспечения.
Прямое использование существующего проектаampДля файла из инструмента STM32CubeMX требуется STM32CubeMX 6.12.0 или выше:
- После установки STM32CubeMX откройте и при необходимости обновите предложенный проект.
Самый простой способ открыть существующий проект — дважды щелкнуть по файлу *.ioc. file чтобы STM32CubeMX автоматически открывал проект и его исходный код files. STM32CubeMX генерирует исходный код инициализации таких проектов. - Основной исходный код приложения содержится в комментариях «USER CODE BEGIN» и «USER CODE END». Если выбор периферийного устройства и настройки изменены, STM32CubeMX обновляет инициализирующую часть кода, сохраняя основной исходный код приложения.
Чтобы разработать собственный проект с помощью STM32CubeMX, следуйте пошаговой инструкции:
- Настройте все необходимое встроенное программное обеспечение с помощью решателя конфликтов выводов, помощника по настройке дерева тактовой частоты, калькулятора энергопотребления и утилиты, выполняющей настройку периферийных устройств микроконтроллера (например, GPIO или USART).
- Сгенерируйте код инициализации C на основе выбранной конфигурации. Этот код готов к использованию в нескольких средах разработки. Код пользователя сохраняется при следующей генерации кода.
Для получения дополнительной информации о STM32CubeMX обратитесь к руководству пользователя STM32CubeMX для настройки и инициализации STM32, генерации кода C (UM1718).
Приложения для драйверов
HAL-приложение
В этом разделе описываются шаги, необходимые для создания пользовательского приложения HAL с использованием STM32CubeWL3:
- Создать проект
Чтобы создать новый проект, начните либо с проекта-шаблона, предоставленного для каждой платы в папке \Projects\< STM32xxx_yyy>\Templates, либо с любого доступного проекта в папке \Projects\ \Бывшийampl es или \Проекты\ \Приложения (где относится к имени платы). Проект Template предоставляет пустую функцию основного цикла. Тем не менее, это хорошая отправная точка для понимания настроек проекта STM32CubeWL32. Шаблон имеет следующие характеристики:- Он содержит исходный код HAL, драйверы CMSIS и BSP, которые представляют собой минимальный набор компонентов, необходимых для разработки кода на данной плате.
- Он содержит включенные пути для всех компонентов встроенного ПО.
- Он определяет поддерживаемые устройства линейки продуктов STM32WL3x, позволяя правильно настраивать драйверы CMSIS и HAL.
- Он предоставляет пользователю готовый к использованию fileпредварительно настроено, как показано ниже:
- HAL инициализируется с временной базой по умолчанию с помощью ядра Arm® SysTick.
- SysTick ISR реализован для цели HAL_Delay().
Примечание: при копировании существующего проекта в другое место убедитесь, что все включенные пути обновлены.
- Настройка компонентов прошивки
Компоненты HAL и промежуточного программного обеспечения предлагают набор параметров конфигурации во время сборки с использованием макросов #define, объявленных в заголовке. file. Конфигурация шаблона file предоставляется внутри каждого компонента, который необходимо скопировать в папку проекта (обычно это папка конфигурации file называется xxx_conf_template.h, фрагмент _template необходимо удалить при копировании его в папку проекта). Конфигурация file предоставляет достаточно информации, чтобы понять влияние каждого параметра конфигурации. Более подробная информация доступна в документации, прилагаемой к каждому компоненту. - Запустите библиотеку HAL
После перехода к основной программе код приложения должен вызвать API HAL_Init() для инициализации библиотеки HAL, которая выполняет следующие задачи:- Настройка предварительной выборки флэш-памяти и приоритета прерываний SysTick (с помощью макросов, определенных в stm3 2wl3x_hal_conf.h).
- Конфигурация SysTick для генерации прерывания каждую миллисекунду с приоритетом прерывания SysTick TICK_INT_PRIO, определенным в stm32wl3x_hal_conf.h.
- Установка приоритета группы NVIC на 0.
- Вызов функции обратного вызова HAL_MspInit(), определенной в файле пользователя stm32wl3x_hal_msp.c file для выполнения глобальной низкоуровневой инициализации оборудования.
- Настройте системные часы
Конфигурация системных часов выполняется путем вызова двух API, описанных ниже:- HAL_RCC_OscConfig(): этот API настраивает внутренние и внешние осцилляторы. Пользователь выбирает настройку одного или всех осцилляторов.
- HAL_RCC_ClockConfig(): этот API настраивает источник системных часов, задержку флэш-памяти и предварительные делители AHB и APB.
- Инициализируйте периферийное устройство
- Сначала напишите функцию инициализации периферии. Действуйте следующим образом:
- Включите периферийные часы.
- Настройте периферийные GPIO.
- Настройте канал DMA и включите прерывание DMA (при необходимости).
- Включите периферийное прерывание (при необходимости).
- При необходимости отредактируйте файл stm32xxx_it.c, чтобы вызвать необходимые обработчики прерываний (периферийные устройства и DMA).
- Запишите функции обратного вызова завершения процесса, если предполагается использование периферийного прерывания или прямого доступа к памяти (DMA).
- В пользовательском main.c file, инициализируйте структуру дескриптора периферийного устройства, а затем вызовите функцию инициализации периферийного устройства для инициализации периферийного устройства.
- Разработать приложение
В это сtagе., система готова и можно начинать разработку кода пользовательского приложения.
HAL предоставляет интуитивно понятные и готовые к использованию API для настройки периферийного устройства. Он поддерживает опрос, прерывания и модель программирования DMA для удовлетворения любых требований приложения. Более подробную информацию о том, как использовать каждое периферийное устройство, см. в богатом примере.ampНабор файлов входит в комплект микроконтроллера STM32CubeWL3.
Осторожность:
В реализации HAL по умолчанию таймер SysTick используется в качестве временной базы: он генерирует прерывания с регулярными интервалами времени. Если HAL_Delay() вызывается из периферийного процесса ISR, убедитесь, что прерывание SysTick имеет более высокий приоритет (численно ниже), чем периферийное прерывание. В противном случае вызывающий процесс ISR
заблокирован. Функции, влияющие на конфигурации временной базы, объявлены как __weak, чтобы сделать возможным переопределение в случае других реализаций в пользовательском file (с использованием таймера общего назначения, напримерample или другой источник времени).
Для получения более подробной информации обратитесь к примеру HAL_TimeBase.ampле.
Приложение LL
В этом разделе описываются шаги, необходимые для создания пользовательского приложения LL с использованием STM32CubeWL3.
- Создать проект
Чтобы создать новый проект, начните с проекта Templates_LL, предоставленного для каждой платы в разделе \Projects\ \Templates_LL или из любого доступного проекта в \Projects\ \Бывшийamples_LL ( относится к названию платы, например NUCLEO-WL32CC33).
Шаблон проекта предоставляет пустую функцию основного цикла, которая является хорошей отправной точкой для понимания настроек проекта для STM32CubeWL3. Основные характеристики шаблона следующие:- Он содержит исходные коды драйверов LL и CMSIS, которые представляют собой минимальный набор компонентов, необходимых для разработки кода на данной плате.
- Он содержит включенные пути для всех необходимых компонентов прошивки.
- Он выбирает поддерживаемое устройство линейки продуктов STM32WL3x и позволяет правильно настроить драйверы CMSIS и LL.
- Он предоставляет пользователю готовый к использованию files, которые предварительно настроены следующим образом:
- main.h: Уровень абстракции определения светодиодов и USER_BUTTON.
- main.c: Конфигурация системных часов для максимальной частоты.
- Портировать бывшего LLampль:
- Скопируйте/вставьте папку Templates_LL, чтобы сохранить исходный код, или напрямую обновите существующий проект Templates_LL.
- Тогда портирование в основном заключается в замене Templates_LL files от Exampцелевой проект les_LL.
- Сохраните все детали платы. Для ясности отдельные части платы помечены специальными значками. tags:

Таким образом, основными этапами портирования являются следующие:
- Заменить stm32wl3x_it.h file.
- Заменить stm32wl3x_it.c file.
- Замените main.h file и обновите его: сохраните определение светодиода и пользовательских кнопок шаблона LL в разделе «Конфигурация конкретной платы». tags.
- Замените файл main.c file и обновите его:
- Сохраните конфигурацию часов функции шаблона LL SystemClock_Config() в разделе «Конфигурация конкретной платы». tags.
- В зависимости от определения светодиода замените каждое появление LDx другим LDy, доступным в file основной.h.
Благодаря этим изменениям бывшийample запускается на целевой доске.
Применение, демонстрации и испытания радиочастотampле
Различные типы радиочастотных приложений, демонстраций и эксampФайлы доступны в пакете STM32CubeWL3. Они перечислены в двух разделах ниже.
Sub-GHz exampле и демонстрации
Эти бывшиеampле демонстрируют основные особенности радиопериферийных устройств MRSUBG и LPAWUR. Эти примерыampФайлы доступны по адресу:
- Проекты\NUCLEO-WL33CC\Examples\MRSUBG
- Проекты\NUCLEO-WL33CC\Examples\LPAWUR
- Проекты\NUCLEO-WL33CC\Демонстрации\MRSUBG
- Проекты\NUCLEO-WL33CC\Демонстрации\LPAWUR
Каждый бывшийampФайл демонстрации обычно состоит из двух программ, называемых Tx и Rx, действующих как передатчик и приемник соответственно:
- Exampле/MRSUBG
- MRSUBG_802_15_4: реализация физического уровня, определенного стандартом 802.15.4. Она показывает, как настроить радио для передачи или приема пакетов 802.15.4.
- MRSUBG_BasicGeneric: обмен базовыми пакетами STM32WL3x MR_SUBG.
- MRSUBG_Chat: простое приложение, показывающее, как использовать Tx и Rx на одном устройстве.
- MRSUBG_DatabufferHandler: бывшийampфайл, который показывает, как поменять местами Databuffer 0 и 1.
- MRSUBG_Sequencer AutoAck: бывшийampфайл, который автоматически передает и получает подтверждения пакетов (ACK).
- MRSUBG_WMBusSTD: Обмен сообщениями WM-Bus.
- WakeupRadio: Бывшийample для тестирования периферийного радиоустройства LPAWUR.
- Демонстрации/MRSUBG
- MRSUBG_RTC_Button_TX: Это бывшийampВ этом примере показано, как перевести SoC в режим глубокой остановки и настроить MRSUBG для пробуждения SoC нажатием PB2 для отправки кадра или после истечения таймера RTC.
- MRSUBG_Sequencer_Sniff: Этот бывшийample показывает, как настроить секвенсор MRSUBG для работы в режиме sniff. Этот примерample демонстрирует сторону приемника и требует другого устройства в качестве передатчика.
- MRSUBG_Timer: приложение планирует несколько экземпляров таймера MRSUBG (с автоперезагрузкой) с различными временными интервалами.
- MRSUBG_WakeupRadio_Tx: Это бывшийample объясняет, как установить SoC в режим глубокой остановки и настроить MRSUBG для пробуждения SoC нажатием PB2 для отправки кадра. Этот примерample демонстрирует сторону передатчика и требует другого устройства в качестве приемника LPAWUR. Приемник example находится в папке NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx.
- Демонстрации/LPAWUR
- LPAWUR_WakeupRadio_Rx: Это бывшийample объясняет, как установить SoC в режим глубокой остановки и настроить LPAWUR для пробуждения SoC при поступлении кадра и его правильном получении. Этот примерample демонстрирует сторону приемника и требует другого устройства в качестве передатчика. Передатчик example находится в папке NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx.
Приложение Sigfox™
Эти приложения показывают, как реализовать сценарий Sigfox™ и использовать доступные API Sigfox™. Они доступны в пути проекта Projects\NUCLEO-WL33CC\Applications\Sigfox\:
- Sigfox_CLI: Это приложение показывает, как использовать интерфейс командной строки (CLI) для отправки команд, использующих протокол Sigfox™ для отправки сообщений и выполнения предсертификационных тестов.
- Sigfox_PushButton: Это приложение позволяет оценить возможности радиоустройства STM32WL33xx Sigfox™. Нажатие PB1 передает тестовый кадр Sigfox™.
Часто задаваемые вопросы
- Когда мне следует использовать HAL вместо драйверов LL?
Драйверы HAL предлагают высокоуровневые функциональные API-интерфейсы с высоким уровнем переносимости. Сложность продукта или периферийного устройства скрыта от конечных пользователей.
Драйверы LL предлагают низкоуровневые API-интерфейсы уровня регистров с лучшей оптимизацией, но менее переносимые. Они требуют глубоких знаний характеристик продукции или IP-спецификаций. - Можно ли использовать драйверы HAL и LL вместе? Если да, то какие ограничения?
Можно использовать как драйверы HAL, так и LL. Используйте HAL для фазы инициализации периферии, а затем управляйте операциями ввода-вывода с помощью драйверов LL.
Основное различие между HAL и LL заключается в том, что драйверы HAL требуют создания и использования дескрипторов для управления операциями, в то время как драйверы LL работают непосредственно с периферийными регистрами. Смешивание HAL и LL показано в Examples_MIX бывшийampлес. - Как включены API инициализации LL?
Определение API инициализации LL и связанных с ними ресурсов (структур, литералов и прототипов) обусловлено переключателем компиляции USE_FULL_LL_DRIVER.
Чтобы иметь возможность использовать API-интерфейсы инициализации LL, добавьте этот переключатель в препроцессор компилятора цепочки инструментов. - Есть ли какой-либо шаблон проекта для периферийного устройства MRSUBG/LPAWUR?ampлес?
Чтобы создать новый MRSUBG или LPAWUR example проект, либо начните с каркасного проекта, представленного в \Projects\NUCLEO-WL33CC\Examples\MRSUBG или \Projects\NUCLEO-WL33CC\Examples\LPAWUR или из любого доступного проекта в этих же каталогах. - Как STM32CubeMX может генерировать код на основе встроенного программного обеспечения?
STM32CubeMX имеет встроенные знания о микроконтроллерах STM32, включая их периферийные устройства и программное обеспечение, что позволяет ему предоставлять графическое представление пользователю и генерировать *.h или *.c fileна основе конфигурации пользователя.
История изменений
Таблица 3. История изменений документа
Документы/Ресурсы
![]() |
Пакет программного обеспечения ST STM32WL3x [pdf] Инструкции Пакет программного обеспечения STM32WL3x, STM32WL3x, Пакет программного обеспечения, Пакет |





