Loading...
Searching...
No Matches
SPI Tools

Функции и макросы для удобной работы с SPI. More...

Collaboration diagram for SPI Tools:

## Topics

| Init defines
| Настройка SPI.

## Classes

struct | SPI_SettingsTypeDef
| Структура настроек SPI. More...

## Functions

HAL_StatusTypeDef | SPI_Base_Init (SPI_SettingsTypeDef *sspi)
| Инициализация SPI с помощью структуры SPI_SettingsTypeDef.
HAL_StatusTypeDef | SPI_Check_Init_Struct (SPI_SettingsTypeDef *sspi)
| Проверка корректности структуры инициализации SPI.
void | SPI_MspInit (SPI_HandleTypeDef *hspi)
| Настройка тактирования и прерываний SPI.
void | SPI_MspDeInit (SPI_HandleTypeDef *hspi)
| Деинициализация тактирования и прерываний SPI.

## Detailed Description

Функции и макросы для удобной работы с SPI.

Модуль предоставляет функции для базовой инициализации SPI

Пример использования:
  // Структура настроек SPI
  SPI_SettingsTypeDef spi1Settings;
  void SPI1_Init(void)
  {
  // Настройка SPI1 как Master, 8 бит, полный дуплекс
  spi1Settings.hspi.Instance = SPI1;
  spi1Settings.hspi.Init.Mode = SPI_MODE_MASTER;
  spi1Settings.hspi.Init.Direction = SPI_DIRECTION_2LINES;
  spi1Settings.hspi.Init.DataSize = SPI_DATASIZE_8BIT;
  spi1Settings.hspi.Init.CLKPolarity = SPI_POLARITY_LOW;
  spi1Settings.hspi.Init.CLKPhase = SPI_PHASE_1EDGE;
  spi1Settings.hspi.Init.NSS = SPI_NSS_SOFT;
  spi1Settings.hspi.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
  spi1Settings.hspi.Init.FirstBit = SPI_FIRSTBIT_MSB;
  spi1Settings.hspi.Init.TIMode = SPI_TIMODE_DISABLE;
  spi1Settings.hspi.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  // Настройка GPIO
  spi1Settings.CLK_GPIOx = GPIOA;
  spi1Settings.CLK_PIN = GPIO_PIN_5;
  spi1Settings.CLK_GPIO_AlternageFunc = GPIO_AF5_SPI1;
  spi1Settings.MISO_GPIOx = GPIOA;
  spi1Settings.MISO_PIN = GPIO_PIN_6;
  spi1Settings.MISO_GPIO_AlternageFunc = GPIO_AF5_SPI1;
  spi1Settings.MOSI_GPIOx = GPIOA;
  spi1Settings.MOSI_PIN = GPIO_PIN_7;
  spi1Settings.MOSI_GPIO_AlternageFunc = GPIO_AF5_SPI1;
  // Инициализация SPI
  if(SPI_Base_Init(&spi1Settings) != HAL_OK)
  {
  // Обработка ошибки
  Error_Handler();
  }
  }
  SPI_Base_Init
  HAL_StatusTypeDef SPI_Base_Init(SPI_SettingsTypeDef *sspi)
  Инициализация SPI с помощью структуры SPI_SettingsTypeDef.
  Definition general_spi.c:28
  SPI_SettingsTypeDef
  Структура настроек SPI.
  Definition general_spi.h:104
  SPI_SettingsTypeDef::MOSI_GPIOx
  GPIO_TypeDef * MOSI_GPIOx
  Порт MOSI.
  Definition general_spi.h:115
  SPI_SettingsTypeDef::MISO_GPIOx
  GPIO_TypeDef * MISO_GPIOx
  Порт MISO.
  Definition general_spi.h:111
  SPI_SettingsTypeDef::MISO_PIN
  uint32_t MISO_PIN
  Пин MISO.
  Definition general_spi.h:112
  SPI_SettingsTypeDef::CLK_PIN
  uint32_t CLK_PIN
  Пин CLK.
  Definition general_spi.h:108
  SPI_SettingsTypeDef::CLK_GPIO_AlternageFunc
  uint32_t CLK_GPIO_AlternageFunc
  Альтернативная функция для CLK.
  Definition general_spi.h:109
  SPI_SettingsTypeDef::CLK_GPIOx
  GPIO_TypeDef * CLK_GPIOx
  Порт CLK.
  Definition general_spi.h:107
  SPI_SettingsTypeDef::MOSI_PIN
  uint32_t MOSI_PIN
  Пин MOSI.
  Definition general_spi.h:116
  SPI_SettingsTypeDef::hspi
  SPI_HandleTypeDef hspi
  HAL handle SPI.
  Definition general_spi.h:105
  SPI_SettingsTypeDef::MISO_GPIO_AlternageFunc
  uint32_t MISO_GPIO_AlternageFunc
  Альтернативная функция для MISO.
  Definition general_spi.h:113
  SPI_SettingsTypeDef::MOSI_GPIO_AlternageFunc
  uint32_t MOSI_GPIO_AlternageFunc
  Альтернативная функция для MOSI.
  Definition general_spi.h:117

Note
  Требуется подключение модуля SPI в библиотеке HAL
  #define HAL_SPI_MODULE_ENABLED

## Function Documentation

## SPI_Base_Init()

HAL_StatusTypeDef SPI_Base_Init | ( | SPI_SettingsTypeDef * | sspi | ) |

Инициализация SPI с помощью структуры SPI_SettingsTypeDef.

Parameters

  sspi | Указатель на структуру с настройками SPI.

Returns
  HAL status.

Инициализирует SPI и его GPIO. Настройка аналогична HAL_SPI_Init

suart.hspi.Init...

но дополнительно надо прописать пины CLK/MISO/MOSI SPI_SettingsTypeDef

Definition at line 28 of file general_spi.c.

## SPI_Check_Init_Struct()

HAL_StatusTypeDef SPI_Check_Init_Struct | ( | SPI_SettingsTypeDef * | sspi | ) |

Проверка корректности структуры инициализации SPI.

Parameters

  sspi | Указатель на структуру с настройками SPI.

Returns
  HAL status.

Definition at line 246 of file general_spi.c.

## SPI_MspInit()

void SPI_MspInit | ( | SPI_HandleTypeDef * | hspi | ) |

Настройка тактирования и прерываний SPI.

Parameters

  hspi | Указатель на хендл SPI.

Note
  Чтобы не генерировать функцию с иницилизацией неиспользуемых SPI, дефайнами Init defines в general_spi.h определяются используемые SPI.

Definition at line 127 of file general_spi.c.

## SPI_MspDeInit()

void SPI_MspDeInit | ( | SPI_HandleTypeDef * | hspi | ) |

Деинициализация тактирования и прерываний SPI.

Parameters

  hspi | Указатель на хендл SPI.

Note
  Чтобы не генерировать функцию с иницилизацией неиспользуемых SPI, дефайнами Init defines в general_spi.h определяются используемые SPI.

Definition at line 191 of file general_spi.c.