сделаны базовые хедеры: - mylibs_config - mylibs_defs - mylibs_include - trace - trackers - bit_access также сделан модуль general_gpio.c/.h Но надо проверить переструктуризированные модули Остальные модули __general_XXX в целом готовы и как-то работают (на МЗКТЭ) но не структуризированы
101 lines
4.1 KiB
C
101 lines
4.1 KiB
C
/**
|
||
**************************************************************************
|
||
* @file general_spi.h
|
||
* @brief Заголовочны файл модуля инициализации SPI.
|
||
*************************************************************************/
|
||
#ifndef __SPI_GENERAL_H_
|
||
#define __SPI_GENERAL_H_
|
||
|
||
//////////////////////////////////////////////////////////////////////
|
||
/////////////////////////---USER SETTINGS---/////////////////////////
|
||
#define HAL_SPI_MODULE_ENABLED // need to uncomment these defines in stm32f4xx_hal_conf.h
|
||
// also need to add hal_spi.c (source code)
|
||
|
||
#define USE_SPI1
|
||
#define USE_SPI2
|
||
#define USE_SPI3
|
||
|
||
/////////////////////////---USER SETTINGS---/////////////////////////
|
||
#include "mylibs_defs.h"
|
||
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////
|
||
////////////////////////////---DEFINES---////////////////////////////
|
||
|
||
|
||
|
||
////////////////////////////---DEFINES---////////////////////////////
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////
|
||
///////////////////////---STRUCTURES & ENUMS---//////////////////////
|
||
typedef struct // struct with settings for custom function
|
||
{
|
||
SPI_HandleTypeDef hspi;
|
||
|
||
GPIO_TypeDef *CLK_GPIOx;
|
||
uint32_t CLK_PIN;
|
||
uint32_t CLK_GPIO_AlternageFunc;
|
||
|
||
GPIO_TypeDef *MISO_GPIOx;
|
||
uint32_t MISO_PIN;
|
||
uint32_t MISO_GPIO_AlternageFunc;
|
||
|
||
GPIO_TypeDef *MOSI_GPIOx;
|
||
uint32_t MOSI_PIN;
|
||
uint32_t MOSI_GPIO_AlternageFunc;
|
||
|
||
}SPI_SettingsTypeDef;
|
||
///////////////////////---STRUCTURES & ENUMS---//////////////////////
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////
|
||
///////////////////////////---FUNCTIONS---///////////////////////////
|
||
/**
|
||
* @brief Initialize SPI with SPI_SettingsTypeDef structure.
|
||
* @param sspi - указатель на структуру с настройками SPI.
|
||
* @return HAL status.
|
||
* @note Данная структура содержит хендл ЮАРТ и настройки перефирии (GPIO)
|
||
*/
|
||
HAL_StatusTypeDef SPI_Base_Init(SPI_SettingsTypeDef *sspi);
|
||
/**
|
||
* @brief Initialize GPIO for SPI.
|
||
* @param GPIOx - порт для настройки.
|
||
* @param GPIO_PIN_RX - пин для настройки на прием.
|
||
* @param GPIO_PIN_TX - пин для настройки на передачу.
|
||
*/
|
||
void SPI_GPIO_Init(SPI_SettingsTypeDef *sspi);
|
||
/**
|
||
* @brief Initialize DMA for SPI.
|
||
* @param hspi - указатель на хендл SPI для настройки DMA.
|
||
* @param hdma_rx - указатель на хендл DMA для линии приема SPI.
|
||
* @param DMAChannel - указатель на канал DMA/поток DMA в STM32F407.
|
||
* @param DMA_CHANNEL_X - канал DMA.
|
||
*/
|
||
void SPI_DMA_Init(SPI_HandleTypeDef *hspi, DMA_HandleTypeDef *hdma_rx, DMA_Stream_TypeDef *DMAChannel, uint32_t DMA_CHANNEL_X);
|
||
/**
|
||
* @brief Initialize SPI & DMA clock and interrupt.
|
||
* @param hspi - указатель на хендл SPI для инициализации.
|
||
* @note Чтобы не генерировать функцию с иницилизацией неиспользуемых SPI,
|
||
дефайнами определяются используемые SPI.
|
||
*/
|
||
void SPI_MspInit(SPI_HandleTypeDef *hspi);
|
||
/**
|
||
* @brief Deinitialize SPI & DMA clock and interrupt.
|
||
* @param hspi - указатель на хендл SPI для деинициализации.
|
||
* @note Чтобы не генерировать функцию с деиницилизацией неиспользуемых SPI,
|
||
дефайнами в rs_message.h определяются используемые SPI.
|
||
*/
|
||
void SPI_MspDeInit(SPI_HandleTypeDef *hspi);
|
||
|
||
/**
|
||
* @brief Check that spi init structure have correct values.
|
||
* @param sspi - указатель на структуру с настройками SPI.
|
||
* @return HAL status.
|
||
*/
|
||
HAL_StatusTypeDef Check_SPI_Init_Struct(SPI_SettingsTypeDef *sspi);
|
||
///////////////////////////---FUNCTIONS---///////////////////////////
|
||
|
||
#endif // __SPI_GENERAL_H_
|