MyLibs 1.0
Расширенные библиотеки для STM32
Loading...
Searching...
No Matches
__general_uart.h
1/**
2**************************************************************************
3* @file general_uart.h
4* @brief Заголовочный файл для модуля инициализации UART.
5*************************************************************************/
6#ifndef __UART_GENERAL_H_
7#define __UART_GENERAL_H_
8
9//////////////////////////////////////////////////////////////////////
10/////////////////////////---USER SETTINGS---/////////////////////////
11#define HAL_UART_MODULE_ENABLED // need to uncomment these defines in stm32f4xx_hal_conf.h
12//#define HAL_USART_MODULE_ENABLED // maybe also need to add hal_uart.h/.c (source code)
13
14//#define USE_USART1
15//#define USE_USART2
16//#define USE_USART3
17//#define USE_UART4
18//#define USE_UART5
19//#define USE_USART6
20/* note: used uart defines in modbus.h */
21
22/////////////////////////---USER SETTINGS---/////////////////////////
23#include "interface_config.h" /* used uart defines in modbus.h */
24
25
26
27/////////////////////////////////////////////////////////////////////
28////////////////////////////---DEFINES---////////////////////////////
29#include "mylibs_defs.h"
30/**
31 * @brief Analog for HAL define. Remade with pointer to structure.
32 * @note @ref __HAL_LINKDMA.
33 */
34#define __USER_LINKDMA(__HANDLE__, __PPP_DMA_FIELD__, __DMA_HANDLE__) \
35do{ \
36(__HANDLE__)->__PPP_DMA_FIELD__ = (__DMA_HANDLE__); \
37(__DMA_HANDLE__)->Parent = (__HANDLE__);} while(0U)
38
39
40////////////////////////////---DEFINES---////////////////////////////
41
42
43/////////////////////////////////////////////////////////////////////
44///////////////////////---STRUCTURES & ENUMS---//////////////////////
45typedef struct // struct with settings for custom function
46{
47 UART_HandleTypeDef huart;
48
49 GPIO_TypeDef *GPIOx;
50 uint16_t GPIO_PIN_RX;
51 uint16_t GPIO_PIN_TX;
52
53 DMA_Stream_TypeDef *DMAChannel; // DMAChannel = 0 if doesnt need
54 uint32_t DMA_CHANNEL_X; // DMAChannel = 0 if doesnt need
55
56
58///////////////////////---STRUCTURES & ENUMS---//////////////////////
59
60
61/////////////////////////////////////////////////////////////////////
62///////////////////////////---FUNCTIONS---///////////////////////////
63/**
64 * @brief Initialize UART with UART_SettingsTypeDef structure.
65 * @param suart - указатель на структуру с настройками UART.
66 * @return HAL status.
67 * @note Данная структура содержит хендл ЮАРТ и настройки перефирии (GPIO)
68 */
69HAL_StatusTypeDef UART_Base_Init(UART_SettingsTypeDef *suart);
70/**
71 * @brief Initialize GPIO for UART.
72 * @param GPIOx - порт для настройки.
73 * @param GPIO_PIN_RX - пин для настройки на прием.
74 * @param GPIO_PIN_TX - пин для настройки на передачу.
75 */
76void UART_GPIO_Init(GPIO_TypeDef *GPIOx, uint16_t GPIO_PIN_RX, uint16_t GPIO_PIN_TX);
77/**
78 * @brief Initialize DMA for UART.
79 * @param huart - указатель на хендл UART для настройки DMA.
80 * @param hdma_rx - указатель на хендл DMA для линии приема UART.
81 * @param DMAChannel - указатель на канал DMA/поток DMA в STM32F407.
82 * @param DMA_CHANNEL_X - канал DMA.
83 */
84void UART_DMA_Init(UART_HandleTypeDef *huart, DMA_HandleTypeDef *hdma_rx, DMA_Stream_TypeDef *DMAChannel, uint32_t DMA_CHANNEL_X);
85/**
86 * @brief Initialize UART & DMA clock and interrupt.
87 * @param huart - указатель на хендл UART для инициализации.
88 * @note Чтобы не генерировать функцию с иницилизацией неиспользуемых UART,
89 дефайнами определяются используемые UART.
90 */
91void UART_MspInit(UART_HandleTypeDef *huart);
92/**
93 * @brief Deinitialize UART & DMA clock and interrupt.
94 * @param huart - указатель на хендл UART для деинициализации.
95 * @note Чтобы не генерировать функцию с деиницилизацией неиспользуемых UART,
96 дефайнами в rs_message.h определяются используемые UART.
97 */
98void UART_MspDeInit(UART_HandleTypeDef *huart);
99
100/**
101 * @brief Check that uart init structure have correct values.
102 * @param suart - указатель на структуру с настройками UART.
103 * @return HAL status.
104 */
105HAL_StatusTypeDef Check_UART_Init_Struct(UART_SettingsTypeDef *suart);
106///////////////////////////---FUNCTIONS---///////////////////////////
107
108#endif // __UART_GENERAL_H_
Заголочный файл для дефайнов библиотеки MyLibsGeneral.