STM32F10x Standard Peripherals Library

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

STM32F10x Standard Peripherals Library (сокр. STM32F10x SPL) — библиотека, созданная компанией STMicroelectronics на языке Си для своих микроконтроллеров семейства STM32F10x. Содержит функции, структуры и макросы для облегчения работы с периферией микроконтроллера. Библиотека документирована, включает примеры по каждому периферийному устройству, полностью поддерживает CMSIS (код ядра Cortex-M3[1], разработанный компанией ARM включается в дистрибутив). Дистрибутив библиотеки доступен для бесплатного скачивания (21 МБ). Последняя версия библиотеки: 3.5.0.

Причем в неё включена библиотека ARM CMSIS версии 1.30, в то время как последняя версия CMSIS, выпущенная компанией ARM на данный момент, является 3.01. С версии 1.30, в CMSIS было сделано несколько важных исправлений [2], включая исправление ошибки "registers may not be the same -- `strexh r0,r0,[r1]'". Для устранения этой и других ошибок рекомендуется самостоятельно обновить CMSIS.

Соглашения об именах[править | править код]

  1. PPP — обозначение периферийного устройства, например ADC (аналого-цифровой преобразователь)
  2. Файлы исходного кода библиотеки начинаются с приставки stm32f10x_.
  3. Имена констант прописаны заглавными буквами. Если константа используется в единственном файле, то она определяется в этом файле. Константа, используемая в более, чем одном файле, определяются в заголовочном файле.
  4. Имена регистров, как и констант, прописаны заглавными буквами. Регистры именуются так же как в документации на микроконтроллеры.
  5. Имена функций начинаются с PPP, после чего идет одно нижнее подчеркивание. Далее идут слитные слова, начинающиеся с заглавной буквы. Например: USART_SendData().
  6. Для настройки периферии PPP используется функция PPP_Init(), в которую передается указатель на структуру типа PPP_InitTypeDef, содержащую настройки периферии.
  7. Функция PPP_DeInit() сбрасывает регистры периферии в их начальное состояние.
  8. Функция PPP_StructInit() заполняет поля структуры типа PPP_InitTypeDef значениями по умолчанию, которые описывают начальное состояние периферии (состояние после сброса).
  9. Функция PPP_Cmd() включает или отключает периферию.
  10. Функция PPP_ITConfig() включает или отключает прерывания.
  11. Функция PPP_DMAConfig() включает или отключает DMA-интерфейс.
  12. Функции, оканчивающиеся на Config, настраивают отдельные функции периферии. Например GPIO_PinRemapConfig().
  13. Функция PPP_GetFlagStatus() служит для получения состояния флагов.
  14. Функция PPP_ClearFlag() сбрасывает флаги.
  15. Функция PPP_GetITStatus() сообщает о том произошло ли прерывание или нет.
  16. Функция PPP_ClearITPendingBit() сбрасывает бит захвата прерывания.