init commit

сделаны базовые хедеры:
- mylibs_config
- mylibs_defs
- mylibs_include
- trace
- trackers
- bit_access

также сделан модуль general_gpio.c/.h

Но надо проверить переструктуризированные модули

Остальные модули  __general_XXX в целом готовы и как-то работают (на МЗКТЭ) но не структуризированы
This commit is contained in:
2025-10-18 18:27:37 +03:00
commit f61aa1ff0f
304 changed files with 57234 additions and 0 deletions

View File

@@ -0,0 +1,100 @@
/**
**************************************************************************
* @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_