77 lines
3.0 KiB
C
77 lines
3.0 KiB
C
/*********************************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 "periph_general.h"
|
||
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////
|
||
////////////////////////////---DEFINES---////////////////////////////
|
||
/**
|
||
* @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)
|
||
*/
|
||
/* functions for reading bytes/halswords/words */
|
||
uint8_t FLASH_Read_Byte(uint32_t add);
|
||
uint16_t FLASH_Read_HalfWord(uint32_t add);
|
||
uint32_t FLASH_Read_Word(uint32_t add);
|
||
/* functions for writing bytes/halswords/words */
|
||
HAL_StatusTypeDef FLASH_Write_Byte(uint32_t Address, uint8_t Data);
|
||
HAL_StatusTypeDef FLASH_Write_HalfWord(uint32_t Address, uint16_t Data);
|
||
HAL_StatusTypeDef FLASH_Write_Word(uint32_t Address, uint32_t Data);
|
||
///////////////////////////---FUNCTIONS---///////////////////////////
|
||
|
||
#endif // __UART_GENERAL_H_
|