init
This commit is contained in:
107
научка/code/pwm_motor_control/GENERAL/uart_general.h
Normal file
107
научка/code/pwm_motor_control/GENERAL/uart_general.h
Normal file
@@ -0,0 +1,107 @@
|
||||
/*********************************UART**************************************
|
||||
Данный файл содержит объявления базовых функции и дефайны для инициализации
|
||||
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 // also need to add hal_uart.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 "modbus.h"
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////---DEFINES---////////////////////////////
|
||||
#include "periph_general.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_
|
||||
Reference in New Issue
Block a user