Доработна документация в целом - добавелн main page - исправлены ошибки в шапках и коментах - добавлен граф инклюдов
		
			
				
	
	
		
			109 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** 
 | 
						||
**************************************************************************
 | 
						||
* @file general_uart.h
 | 
						||
* @brief Заголовочный файл для модуля инициализации UART.
 | 
						||
*************************************************************************/
 | 
						||
#ifndef __UART_GENERAL_H_
 | 
						||
#define __UART_GENERAL_H_
 | 
						||
 | 
						||
//////////////////////////////////////////////////////////////////////
 | 
						||
/////////////////////////---USER SETTINGS---/////////////////////////
 | 
						||
#define HAL_UART_MODULE_ENABLED   // need to uncomment these defines in stm32f4xx_hal_conf.h
 | 
						||
//#define HAL_USART_MODULE_ENABLED  // maybe also need to add hal_uart.h/.c (source code)
 | 
						||
 | 
						||
//#define USE_USART1
 | 
						||
//#define USE_USART2
 | 
						||
//#define USE_USART3
 | 
						||
//#define USE_UART4
 | 
						||
//#define USE_UART5
 | 
						||
//#define USE_USART6
 | 
						||
/* note: used uart defines in modbus.h */
 | 
						||
 | 
						||
/////////////////////////---USER SETTINGS---/////////////////////////
 | 
						||
#include "interface_config.h" /* used uart defines in modbus.h */
 | 
						||
 | 
						||
 | 
						||
 | 
						||
/////////////////////////////////////////////////////////////////////
 | 
						||
////////////////////////////---DEFINES---////////////////////////////
 | 
						||
#include "mylibs_defs.h"
 | 
						||
/**  
 | 
						||
  * @brief  Analog for HAL define. Remade with pointer to structure.
 | 
						||
  * @note   @ref __HAL_LINKDMA.
 | 
						||
  */
 | 
						||
#define __USER_LINKDMA(__HANDLE__, __PPP_DMA_FIELD__, __DMA_HANDLE__)   \
 | 
						||
do{                                                                     \
 | 
						||
(__HANDLE__)->__PPP_DMA_FIELD__ = (__DMA_HANDLE__);                     \
 | 
						||
(__DMA_HANDLE__)->Parent = (__HANDLE__);} while(0U)
 | 
						||
 | 
						||
                              
 | 
						||
////////////////////////////---DEFINES---////////////////////////////
 | 
						||
 | 
						||
 | 
						||
/////////////////////////////////////////////////////////////////////
 | 
						||
///////////////////////---STRUCTURES & ENUMS---//////////////////////
 | 
						||
typedef struct // struct with settings for custom function
 | 
						||
{
 | 
						||
  UART_HandleTypeDef huart;
 | 
						||
  
 | 
						||
  GPIO_TypeDef *GPIOx;
 | 
						||
  uint16_t GPIO_PIN_RX;
 | 
						||
  uint16_t GPIO_PIN_TX;
 | 
						||
  
 | 
						||
  DMA_Stream_TypeDef *DMAChannel; // DMAChannel = 0 if doesnt need
 | 
						||
  uint32_t DMA_CHANNEL_X; // DMAChannel = 0 if doesnt need
 | 
						||
  
 | 
						||
  
 | 
						||
}UART_SettingsTypeDef;
 | 
						||
///////////////////////---STRUCTURES & ENUMS---//////////////////////
 | 
						||
 | 
						||
 | 
						||
/////////////////////////////////////////////////////////////////////
 | 
						||
///////////////////////////---FUNCTIONS---///////////////////////////
 | 
						||
/**  
 | 
						||
  * @brief  Initialize UART with UART_SettingsTypeDef structure.
 | 
						||
  * @param  suart - указатель на структуру с настройками UART.
 | 
						||
  * @return HAL status.
 | 
						||
  * @note   Данная структура содержит хендл ЮАРТ и настройки перефирии (GPIO)
 | 
						||
  */
 | 
						||
HAL_StatusTypeDef UART_Base_Init(UART_SettingsTypeDef *suart);
 | 
						||
/**  
 | 
						||
  * @brief  Initialize GPIO for UART.
 | 
						||
  * @param  GPIOx       - порт для настройки.
 | 
						||
  * @param  GPIO_PIN_RX - пин для настройки на прием.
 | 
						||
  * @param  GPIO_PIN_TX - пин для настройки на передачу.
 | 
						||
  */
 | 
						||
void UART_GPIO_Init(GPIO_TypeDef *GPIOx, uint16_t GPIO_PIN_RX, uint16_t GPIO_PIN_TX);
 | 
						||
/**  
 | 
						||
  * @brief  Initialize DMA for UART.
 | 
						||
  * @param  huart         - указатель на хендл UART для настройки DMA.
 | 
						||
  * @param  hdma_rx       - указатель на хендл DMA для линии приема UART.
 | 
						||
  * @param  DMAChannel    - указатель на канал DMA/поток DMA в STM32F407.
 | 
						||
  * @param  DMA_CHANNEL_X - канал DMA.
 | 
						||
  */
 | 
						||
void UART_DMA_Init(UART_HandleTypeDef *huart, DMA_HandleTypeDef *hdma_rx, DMA_Stream_TypeDef *DMAChannel, uint32_t DMA_CHANNEL_X);
 | 
						||
/**  
 | 
						||
  * @brief  Initialize UART & DMA clock and interrupt.
 | 
						||
  * @param  huart - указатель на хендл UART для инициализации.
 | 
						||
  * @note   Чтобы не генерировать функцию с иницилизацией неиспользуемых UART,
 | 
						||
            дефайнами определяются используемые UART.
 | 
						||
  */
 | 
						||
void UART_MspInit(UART_HandleTypeDef *huart);
 | 
						||
/**  
 | 
						||
  * @brief  Deinitialize UART & DMA clock and interrupt.
 | 
						||
  * @param  huart - указатель на хендл UART для деинициализации.
 | 
						||
  * @note   Чтобы не генерировать функцию с деиницилизацией неиспользуемых UART,
 | 
						||
            дефайнами в rs_message.h определяются используемые UART.
 | 
						||
  */
 | 
						||
void UART_MspDeInit(UART_HandleTypeDef *huart);
 | 
						||
 | 
						||
/**  
 | 
						||
  * @brief  Check that uart init structure have correct values.
 | 
						||
  * @param  suart - указатель на структуру с настройками UART.
 | 
						||
  * @return HAL status.
 | 
						||
  */ 
 | 
						||
HAL_StatusTypeDef Check_UART_Init_Struct(UART_SettingsTypeDef *suart);
 | 
						||
///////////////////////////---FUNCTIONS---///////////////////////////
 | 
						||
 | 
						||
#endif // __UART_GENERAL_H_
 |