MyLibs 1.0
Расширенные библиотеки для STM32
Loading...
Searching...
No Matches
__general_spi.h
1/**
2**************************************************************************
3* @file general_spi.h
4* @brief Заголовочны файл модуля инициализации SPI.
5*************************************************************************/
6#ifndef __SPI_GENERAL_H_
7#define __SPI_GENERAL_H_
8
9//////////////////////////////////////////////////////////////////////
10/////////////////////////---USER SETTINGS---/////////////////////////
11#define HAL_SPI_MODULE_ENABLED // need to uncomment these defines in stm32f4xx_hal_conf.h
12 // also need to add hal_spi.c (source code)
13
14#define USE_SPI1
15#define USE_SPI2
16#define USE_SPI3
17
18/////////////////////////---USER SETTINGS---/////////////////////////
19#include "mylibs_defs.h"
20
21
22
23/////////////////////////////////////////////////////////////////////
24////////////////////////////---DEFINES---////////////////////////////
25
26
27
28////////////////////////////---DEFINES---////////////////////////////
29
30
31/////////////////////////////////////////////////////////////////////
32///////////////////////---STRUCTURES & ENUMS---//////////////////////
33typedef struct // struct with settings for custom function
34{
35 SPI_HandleTypeDef hspi;
36
37 GPIO_TypeDef *CLK_GPIOx;
38 uint32_t CLK_PIN;
39 uint32_t CLK_GPIO_AlternageFunc;
40
41 GPIO_TypeDef *MISO_GPIOx;
42 uint32_t MISO_PIN;
43 uint32_t MISO_GPIO_AlternageFunc;
44
45 GPIO_TypeDef *MOSI_GPIOx;
46 uint32_t MOSI_PIN;
47 uint32_t MOSI_GPIO_AlternageFunc;
48
50///////////////////////---STRUCTURES & ENUMS---//////////////////////
51
52
53/////////////////////////////////////////////////////////////////////
54///////////////////////////---FUNCTIONS---///////////////////////////
55/**
56 * @brief Initialize SPI with SPI_SettingsTypeDef structure.
57 * @param sspi - указатель на структуру с настройками SPI.
58 * @return HAL status.
59 * @note Данная структура содержит хендл ЮАРТ и настройки перефирии (GPIO)
60 */
61HAL_StatusTypeDef SPI_Base_Init(SPI_SettingsTypeDef *sspi);
62/**
63 * @brief Initialize GPIO for SPI.
64 * @param GPIOx - порт для настройки.
65 * @param GPIO_PIN_RX - пин для настройки на прием.
66 * @param GPIO_PIN_TX - пин для настройки на передачу.
67 */
68void SPI_GPIO_Init(SPI_SettingsTypeDef *sspi);
69/**
70 * @brief Initialize DMA for SPI.
71 * @param hspi - указатель на хендл SPI для настройки DMA.
72 * @param hdma_rx - указатель на хендл DMA для линии приема SPI.
73 * @param DMAChannel - указатель на канал DMA/поток DMA в STM32F407.
74 * @param DMA_CHANNEL_X - канал DMA.
75 */
76void SPI_DMA_Init(SPI_HandleTypeDef *hspi, DMA_HandleTypeDef *hdma_rx, DMA_Stream_TypeDef *DMAChannel, uint32_t DMA_CHANNEL_X);
77/**
78 * @brief Initialize SPI & DMA clock and interrupt.
79 * @param hspi - указатель на хендл SPI для инициализации.
80 * @note Чтобы не генерировать функцию с иницилизацией неиспользуемых SPI,
81 дефайнами определяются используемые SPI.
82 */
83void SPI_MspInit(SPI_HandleTypeDef *hspi);
84/**
85 * @brief Deinitialize SPI & DMA clock and interrupt.
86 * @param hspi - указатель на хендл SPI для деинициализации.
87 * @note Чтобы не генерировать функцию с деиницилизацией неиспользуемых SPI,
88 дефайнами в rs_message.h определяются используемые SPI.
89 */
90void SPI_MspDeInit(SPI_HandleTypeDef *hspi);
91
92/**
93 * @brief Check that spi init structure have correct values.
94 * @param sspi - указатель на структуру с настройками SPI.
95 * @return HAL status.
96 */
97HAL_StatusTypeDef Check_SPI_Init_Struct(SPI_SettingsTypeDef *sspi);
98///////////////////////////---FUNCTIONS---///////////////////////////
99
100#endif // __SPI_GENERAL_H_
Заголочный файл для дефайнов библиотеки MyLibsGeneral.