NIIETCM4 PD  v0.8.0
Драйвер периферии для микроконтроллеров на базе ядра ARM Cortex-M4
niietcm4_uart.h
См. документацию.
1 
29 /* Define to prevent recursive inclusion -------------------------------------*/
30 #ifndef __NIIETCM4_UART_H
31 #define __NIIETCM4_UART_H
32 
33 #ifdef __cplusplus
34  extern "C" {
35 #endif
36 
37 /* Includes ------------------------------------------------------------------*/
38 #include "niietcm4.h"
39 
56 #define IS_UART_INT_DIV(INT_DIV) (((INT_DIV) > ((uint32_t)0x0)) && ((INT_DIV) < ((uint32_t)0x10000)))
57 
62 #define IS_UART_FRAC_DIV(FRAC_DIV) ((FRAC_DIV) < ((uint32_t)0x40))
63 
68 #define IS_UART_DATA(DATA) ((DATA) < ((uint32_t)0x100))
69 
74 typedef enum
75 {
86 
91 #define IS_UART_FLAG(FLAG) (((FLAG) == UART_Flag_InvCTS) || \
92  ((FLAG) == UART_Flag_InvDSR) || \
93  ((FLAG) == UART_Flag_InvDCD) || \
94  ((FLAG) == UART_Flag_Busy) || \
95  ((FLAG) == UART_Flag_RxFIFOEmpty) || \
96  ((FLAG) == UART_Flag_TxFIFOFull) || \
97  ((FLAG) == UART_Flag_RxFIFOFull) || \
98  ((FLAG) == UART_Flag_TxFIFOEmpty) || \
99  ((FLAG) == UART_Flag_InvRI))
100 
105 typedef enum
106 {
112 
117 #define IS_UART_ERROR(ERROR) (((ERROR) == UART_Error_Frame) || \
118  ((ERROR) == UART_Error_Parity) || \
119  ((ERROR) == UART_Error_Break) || \
120  ((ERROR) == UART_Error_Overflow))
121 
126 typedef enum
127 {
128  UART_ITSource_ChangeRI = ((uint32_t)0x00000001),
129  UART_ITSource_ChangeCTS = ((uint32_t)0x00000002),
130  UART_ITSource_ChangeDCD = ((uint32_t)0x00000004),
131  UART_ITSource_ChangeDSR = ((uint32_t)0x00000008),
132  UART_ITSource_RxFIFOLevel = ((uint32_t)0x00000010),
133  UART_ITSource_TxFIFOLevel = ((uint32_t)0x00000020),
134  UART_ITSource_RecieveTimeout = ((uint32_t)0x00000040),
135  UART_ITSource_ErrorFrame = ((uint32_t)0x00000080),
136  UART_ITSource_ErrorParity = ((uint32_t)0x00000100),
137  UART_ITSource_ErrorBreak = ((uint32_t)0x00000200),
138  UART_ITSource_ErrorOverflow = ((uint32_t)0x00000400),
140 
145 #define IS_UART_IT_SOURCE(IT_SOURCE) (((IT_SOURCE) > ((uint32_t)0x0)) && ((IT_SOURCE) < ((uint32_t)0x800)))
146 
151 #define IS_UART_GET_IT_SOURCE(IT_SOURCE) (((IT_SOURCE) == UART_ITSource_ChangeRI) || \
152  ((IT_SOURCE) == UART_ITSource_ChangeCTS) || \
153  ((IT_SOURCE) == UART_ITSource_ChangeDCD) || \
154  ((IT_SOURCE) == UART_ITSource_ChangeDSR) || \
155  ((IT_SOURCE) == UART_ITSource_RxFIFOLevel) || \
156  ((IT_SOURCE) == UART_ITSource_TxFIFOLevel) || \
157  ((IT_SOURCE) == UART_ITSource_RecieveTimeout) || \
158  ((IT_SOURCE) == UART_ITSource_ErrorFrame) || \
159  ((IT_SOURCE) == UART_ITSource_ErrorParity) || \
160  ((IT_SOURCE) == UART_ITSource_ErrorBreak) || \
161  ((IT_SOURCE) == UART_ITSource_ErrorOverflow))
162 
167 typedef enum
168 {
172 
177 #define IS_UART_DIR(DIR) (((DIR) == UART_Dir_Rx) || \
178  ((DIR) == UART_Dir_Tx))
179 
184 typedef enum
185 {
189 
194 #define IS_UART_STOP_BIT(STOP_BIT) (((STOP_BIT) == UART_StopBit_1) || \
195  ((STOP_BIT) == UART_StopBit_2))
196 
201 typedef enum
202 {
209 
214 #define IS_UART_PARITY_BIT(PARITY_BIT) (((PARITY_BIT) == UART_ParityBit_Disable) || \
215  ((PARITY_BIT) == UART_ParityBit_Odd) || \
216  ((PARITY_BIT) == UART_ParityBit_Even) || \
217  ((PARITY_BIT) == UART_ParityBit_High) || \
218  ((PARITY_BIT) == UART_ParityBit_Low))
219 
224 typedef enum
225 {
231 
236 #define IS_UART_DATA_WIDTH(DATA_WIDTH) (((DATA_WIDTH) == UART_DataWidth_5) || \
237  ((DATA_WIDTH) == UART_DataWidth_6) || \
238  ((DATA_WIDTH) == UART_DataWidth_7) || \
239  ((DATA_WIDTH) == UART_DataWidth_8))
240 
246 typedef enum
247 {
254 
259 #define IS_UART_FIFO_LEVEL(FIFO_LEVEL) (((FIFO_LEVEL) == UART_FIFOLevel_1_8) || \
260  ((FIFO_LEVEL) == UART_FIFOLevel_1_4) || \
261  ((FIFO_LEVEL) == UART_FIFOLevel_1_2) || \
262  ((FIFO_LEVEL) == UART_FIFOLevel_3_4) || \
263  ((FIFO_LEVEL) == UART_FIFOLevel_7_8))
264 
269 typedef struct
270 {
280 
285 typedef struct
286 {
293  uint32_t UART_ClkFreq;
294  uint32_t UART_BaudRate;
307 
324 void UART_Cmd(NT_UART_TypeDef* UARTx, FunctionalState State);
325 void UART_BaudRateDivConfig(NT_UART_TypeDef* UARTx, uint32_t IntDiv, uint32_t FracDiv);
326 void UART_Break(NT_UART_TypeDef* UARTx, FunctionalState State);
327 
332 void UART_DeInit(NT_UART_TypeDef* UARTx);
333 OperationStatus UART_Init(NT_UART_TypeDef* UARTx, UART_Init_TypeDef* UART_InitStruct);
334 void UART_StructInit(UART_Init_TypeDef* UART_InitStruct);
335 
344 void UART_SendData(NT_UART_TypeDef* UARTx, uint32_t Data);
345 uint32_t UART_RecieveData(NT_UART_TypeDef* UARTx);
346 FlagStatus UART_FlagStatus(NT_UART_TypeDef* UARTx, UART_Flag_Typedef UART_Flag);
347 FlagStatus UART_ErrorStatus(NT_UART_TypeDef* UARTx, UART_Error_Typedef UART_Error);
348 void UART_ErrorStatusClear(NT_UART_TypeDef* UARTx);
349 
358 void UART_ModemConfig(NT_UART_TypeDef* UARTx, UART_ModemInit_TypeDef* UART_ModemInitStruct);
359 void UART_ModemStructInit(UART_ModemInit_TypeDef* UART_ModemInitStruct);
360 
369 void UART_ITFIFOLevelConfig(NT_UART_TypeDef* UARTx, UART_Dir_Typedef UART_Dir, UART_FIFOLevel_TypeDef UART_FIFOLevel);
370 void UART_ITCmd(NT_UART_TypeDef* UARTx, UART_ITSource_Typedef UART_ITSource, FunctionalState State);
371 FlagStatus UART_ITRawStatus(NT_UART_TypeDef *UARTx, UART_ITSource_Typedef UART_ITSource);
372 FlagStatus UART_ITMaskedStatus(NT_UART_TypeDef* UARTx, UART_ITSource_Typedef UART_ITSource);
373 void UART_ITStatusClear(NT_UART_TypeDef* UARTx, UART_ITSource_Typedef UART_ITSource);
374 
383 void UART_DMABlkOnErrCmd(NT_UART_TypeDef* UARTx, FunctionalState State);
384 void UART_DMACmd(NT_UART_TypeDef* UARTx, UART_Dir_Typedef UART_Dir, FunctionalState State);
385 
395 #ifdef __cplusplus
396 }
397 #endif
398 
399 #endif /* __NIIETCM4_UART_H */
400 
401 
402 
411 /******************* (C) COPYRIGHT 2015 NIIET *****END OF FILE****/
void UART_SendData(NT_UART_TypeDef *UARTx, uint32_t Data)
Передача слова данных.
void UART_ITStatusClear(NT_UART_TypeDef *UARTx, UART_ITSource_Typedef UART_ITSource)
Сброс флагов состояния выбранных прерываний.
UART_ParityBit_TypeDef
Выбор режима бита четности.
UART_DataWidth_TypeDef
Количество передаваемых/принимаемых информационных бит.
UART_Flag_Typedef
Перечень флагов.
Definition: niietcm4_uart.h:74
FunctionalState UART_RTSEn
FunctionalState UART_RxEn
UART_DataWidth_TypeDef UART_DataWidth
FunctionalState
Описывает логическое состояние периферии. Используется для операций включения/выключения периферийных...
Definition: niietcm4.h:157
FunctionalState UART_InvRTS
Структура инициализации UART.
void UART_DMABlkOnErrCmd(NT_UART_TypeDef *UARTx, FunctionalState State)
Управление блокированием запросов DMA от приемника в случае возникновения прерывания по ошибке...
void UART_Cmd(NT_UART_TypeDef *UARTx, FunctionalState State)
Разрешение работы выбранного UART.
Definition: niietcm4_uart.c:69
OperationStatus UART_Init(NT_UART_TypeDef *UARTx, UART_Init_TypeDef *UART_InitStruct)
Инициализирует UARTx согласно параметрам структуры UART_InitStruct.
UART_FIFOLevel_TypeDef UART_FIFOLevelTx
FlagStatus UART_ErrorStatus(NT_UART_TypeDef *UARTx, UART_Error_Typedef UART_Error)
Запрос состояния выбранного флага ошибки.
void UART_DMACmd(NT_UART_TypeDef *UARTx, UART_Dir_Typedef UART_Dir, FunctionalState State)
Разрешение формирования запросов DMA для обслуживания буфера передатчика/приемника ...
FunctionalState UART_TxEn
void UART_BaudRateDivConfig(NT_UART_TypeDef *UARTx, uint32_t IntDiv, uint32_t FracDiv)
Ручная настройка делителя для реализации необходимой скорости передачи.
Definition: niietcm4_uart.c:88
void UART_ITCmd(NT_UART_TypeDef *UARTx, UART_ITSource_Typedef UART_ITSource, FunctionalState State)
Маскирование выбранных прерываний.
FlagStatus
Описывает возможные состояния флага при запросе его статуса.
Definition: niietcm4.h:183
FlagStatus UART_ITRawStatus(NT_UART_TypeDef *UARTx, UART_ITSource_Typedef UART_ITSource)
Запрос немаскированного состояния прерывания.
uint32_t UART_BaudRate
void UART_ModemConfig(NT_UART_TypeDef *UARTx, UART_ModemInit_TypeDef *UART_ModemInitStruct)
Инициализирует модемный режим UART согласно параметрам структуры UART_ModemInitStruct.
FunctionalState UART_CTSEn
void UART_StructInit(UART_Init_TypeDef *UART_InitStruct)
Заполнение каждого члена структуры UART_InitStruct значениями по умолчанию.
OperationStatus
Описывает коды возврата для функций при выполнении какой-либо операции.
Definition: niietcm4.h:173
void UART_ErrorStatusClear(NT_UART_TypeDef *UARTx)
Очистка флагов ошибки.
FunctionalState UART_InvDTR
UART_ParityBit_TypeDef UART_ParityBit
FlagStatus UART_FlagStatus(NT_UART_TypeDef *UARTx, UART_Flag_Typedef UART_Flag)
Запрос состояния выбранного флага.
Это главный заголовочный файл драйвера, обычно включаемый в main.c.
UART_StopBit_TypeDef
Выбор режима передачи стопового бита.
UART_Error_Typedef
Перечень ошибок приемника.
FlagStatus UART_ITMaskedStatus(NT_UART_TypeDef *UARTx, UART_ITSource_Typedef UART_ITSource)
Запрос маскированного состояния прерывания.
Структура инициализации модемного режима.
void UART_DeInit(NT_UART_TypeDef *UARTx)
Устанавливает все регистры UART значениями по умолчанию.
void UART_Break(NT_UART_TypeDef *UARTx, FunctionalState State)
Включение разрыва линии.
void UART_ITFIFOLevelConfig(NT_UART_TypeDef *UARTx, UART_Dir_Typedef UART_Dir, UART_FIFOLevel_TypeDef UART_FIFOLevel)
Выбор порог заполнения буфера приемника/передатчика, по достижению которого будет генерироваться прер...
UART_Dir_Typedef
Направления передачи UART.
uint32_t UART_RecieveData(NT_UART_TypeDef *UARTx)
Прием слова данных.
UART_StopBit_TypeDef UART_StopBit
UART_ITSource_Typedef
Источники прерываний UART.
UART_FIFOLevel_TypeDef UART_FIFOLevelRx
UART_FIFOLevel_TypeDef
Порог заполнения буфера приемника/передатчика, по достижению которого будет генерироваться прерывание...
void UART_ModemStructInit(UART_ModemInit_TypeDef *UART_ModemInitStruct)
Заполнение каждого члена структуры UART_ModemInitStruct значениями по умолчанию.
FunctionalState UART_FIFOEn