STM32_General 1.0
Библиотеки для периферии STM32
Loading...
Searching...
No Matches
SPI Tools

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

Collaboration diagram for SPI Tools:

Topics

 SPI 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();
}
}
HAL_StatusTypeDef SPI_Base_Init(SPI_SettingsTypeDef *sspi)
Инициализация SPI с помощью структуры SPI_SettingsTypeDef.
Definition general_spi.c:28
Структура настроек SPI.
GPIO_TypeDef * MOSI_GPIOx
Порт MOSI.
GPIO_TypeDef * MISO_GPIOx
Порт MISO.
uint32_t MISO_PIN
Пин MISO.
uint32_t CLK_PIN
Пин CLK.
uint32_t CLK_GPIO_AlternageFunc
Альтернативная функция для CLK.
GPIO_TypeDef * CLK_GPIOx
Порт CLK.
uint32_t MOSI_PIN
Пин MOSI.
SPI_HandleTypeDef hspi
HAL handle SPI.
uint32_t MISO_GPIO_AlternageFunc
Альтернативная функция для MISO.
uint32_t MOSI_GPIO_AlternageFunc
Альтернативная функция для MOSI.
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, дефайнами 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, дефайнами SPI Init defines в general_spi.h определяются используемые SPI.

Definition at line 191 of file general_spi.c.