TI-RTOS Drivers  tidrivers_cc13xx_cc26xx_2_21_00_04
UART.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2016, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
142 #ifndef ti_drivers_UART__include
143 #define ti_drivers_UART__include
144 
145 #ifdef __cplusplus
146 extern "C" {
147 #endif
148 
149 #include <stdint.h>
150 #include <stddef.h>
151 
169 #define UART_CMD_RESERVED 32
170 
183 #define UART_STATUS_RESERVED -32
184 
198 #define UART_STATUS_SUCCESS 0
199 
206 #define UART_STATUS_ERROR -1
207 
215 #define UART_STATUS_UNDEFINEDCMD -2
216 
234 #define UART_CMD_PEEK 0
235 
245 #define UART_CMD_ISAVAILABLE 1
246 
256 #define UART_CMD_GETRXCOUNT 2
257 
268 #define UART_CMD_RXENABLE 3
269 
281 #define UART_CMD_RXDISABLE 4
282 
286 #define UART_ERROR UART_STATUS_ERROR
287 
291 #define UART_WAIT_FOREVER (~0)
292 
296 typedef struct UART_Config *UART_Handle;
297 
315 typedef void (*UART_Callback) (UART_Handle, void *buf, size_t count);
316 
322 typedef enum UART_Mode {
328 
335 } UART_Mode;
336 
355 typedef enum UART_ReturnMode {
358 
362 
370 typedef enum UART_DataMode {
373 } UART_DataMode;
374 
388 typedef enum UART_Echo {
391 } UART_Echo;
392 
398 typedef enum UART_LEN {
403 } UART_LEN;
404 
410 typedef enum UART_STOP {
413 } UART_STOP;
414 
420 typedef enum UART_PAR {
426 } UART_PAR;
427 
436 typedef struct UART_Params {
439  unsigned int readTimeout;
440  unsigned int writeTimeout;
447  uint32_t baudRate;
451  uintptr_t custom;
453 } UART_Params;
454 
459 typedef void (*UART_CloseFxn) (UART_Handle handle);
460 
465 typedef int (*UART_ControlFxn) (UART_Handle handle,
466  unsigned int cmd,
467  void *arg);
468 
473 typedef void (*UART_InitFxn) (UART_Handle handle);
474 
479 typedef UART_Handle (*UART_OpenFxn) (UART_Handle handle,
480  UART_Params *params);
485 typedef int (*UART_ReadFxn) (UART_Handle handle, void *buffer,
486  size_t size);
487 
492 typedef int (*UART_ReadPollingFxn) (UART_Handle handle, void *buffer,
493  size_t size);
494 
499 typedef void (*UART_ReadCancelFxn) (UART_Handle handle);
500 
505 typedef int (*UART_WriteFxn) (UART_Handle handle,
506  const void *buffer,
507  size_t size);
508 
513 typedef int (*UART_WritePollingFxn) (UART_Handle handle,
514  const void *buffer,
515  size_t size);
516 
521 typedef void (*UART_WriteCancelFxn) (UART_Handle handle);
522 
528 typedef struct UART_FxnTable {
531 
534 
537 
540 
543 
546 
549 
552 
555 
558 } UART_FxnTable;
559 
571 typedef struct UART_Config {
574 
576  void *object;
577 
579  void const *hwAttrs;
580 } UART_Config;
581 
593 extern void UART_close(UART_Handle handle);
594 
632 extern int UART_control(UART_Handle handle, unsigned int cmd, void *arg);
633 
641 extern void UART_init(void);
642 
664 extern UART_Handle UART_open(unsigned int index, UART_Params *params);
665 
688 extern void UART_Params_init(UART_Params *params);
689 
729 extern int UART_write(UART_Handle handle, const void *buffer, size_t size);
730 
754 extern int UART_writePolling(UART_Handle handle, const void *buffer,
755  size_t size);
756 
765 extern void UART_writeCancel(UART_Handle handle);
766 
803 extern int UART_read(UART_Handle handle, void *buffer, size_t size);
804 
825 extern int UART_readPolling(UART_Handle handle, void *buffer, size_t size);
826 
835 extern void UART_readCancel(UART_Handle handle);
836 
837 #ifdef __cplusplus
838 }
839 #endif
840 
841 #endif /* ti_drivers_UART__include */
struct UART_Params UART_Params
UART Parameters.
Definition: UART.h:421
UART_STOP
UART stop bit settings.
Definition: UART.h:410
struct UART_Config UART_Config
UART Global configuration.
void(* UART_CloseFxn)(UART_Handle handle)
A function pointer to a driver specific implementation of UART_CloseFxn().
Definition: UART.h:459
UART_Callback writeCallback
Definition: UART.h:442
int(* UART_ReadFxn)(UART_Handle handle, void *buffer, size_t size)
A function pointer to a driver specific implementation of UART_ReadFxn().
Definition: UART.h:485
void const * hwAttrs
Definition: UART.h:579
Definition: UART.h:334
UART_LEN dataLength
Definition: UART.h:448
Definition: UART.h:423
The definition of a UART function table that contains the required set of functions to control a spec...
Definition: UART.h:528
Definition: UART.h:402
UART_Callback readCallback
Definition: UART.h:441
int UART_writePolling(UART_Handle handle, const void *buffer, size_t size)
Function that writes data to a UART, polling the peripheral to wait until new data can be written...
UART_PAR
UART parity type settings.
Definition: UART.h:420
Definition: UART.h:389
unsigned int writeTimeout
Definition: UART.h:440
UART_ControlFxn controlFxn
Definition: UART.h:533
UART_Mode
UART mode settings.
Definition: UART.h:322
Definition: UART.h:425
Definition: UART.h:372
UART_Handle UART_open(unsigned int index, UART_Params *params)
Function to initialize a given UART peripheral.
UART_PAR parityType
Definition: UART.h:450
UART_DataMode
UART data mode settings.
Definition: UART.h:370
UART_Echo readEcho
Definition: UART.h:446
UART_ReturnMode
UART return mode settings.
Definition: UART.h:355
UART_WritePollingFxn writePollingFxn
Definition: UART.h:554
struct UART_Config * UART_Handle
A handle that is returned from a UART_open() call.
Definition: UART.h:296
struct UART_FxnTable UART_FxnTable
The definition of a UART function table that contains the required set of functions to control a spec...
void UART_close(UART_Handle handle)
Function to close a UART peripheral specified by the UART handle.
Definition: UART.h:327
void UART_readCancel(UART_Handle handle)
Function that cancels a UART_read() function call.
UART_Echo
UART echo settings.
Definition: UART.h:388
int(* UART_ReadPollingFxn)(UART_Handle handle, void *buffer, size_t size)
A function pointer to a driver specific implementation of UART_ReadPollingFxn().
Definition: UART.h:492
int UART_read(UART_Handle handle, void *buffer, size_t size)
Function that reads data from a UART with interrupt enabled.
Definition: UART.h:411
UART_Mode writeMode
Definition: UART.h:438
int(* UART_ControlFxn)(UART_Handle handle, unsigned int cmd, void *arg)
A function pointer to a driver specific implementation of UART_ControlFxn().
Definition: UART.h:465
UART_STOP stopBits
Definition: UART.h:449
UART_ReturnMode readReturnMode
Definition: UART.h:443
UART_CloseFxn closeFxn
Definition: UART.h:530
Definition: UART.h:360
void UART_init(void)
Function to initialize the UART module.
int UART_control(UART_Handle handle, unsigned int cmd, void *arg)
Function performs implementation specific features on a given UART_Handle.
uint32_t baudRate
Definition: UART.h:447
UART_Handle(* UART_OpenFxn)(UART_Handle handle, UART_Params *params)
A function pointer to a driver specific implementation of UART_OpenFxn().
Definition: UART.h:479
int(* UART_WriteFxn)(UART_Handle handle, const void *buffer, size_t size)
A function pointer to a driver specific implementation of UART_WriteFxn().
Definition: UART.h:505
Definition: UART.h:371
Definition: UART.h:424
void UART_Params_init(UART_Params *params)
Function to initialize the UART_Params struct to its defaults.
void UART_writeCancel(UART_Handle handle)
Function that cancels a UART_write() function call.
uintptr_t custom
Definition: UART.h:451
Definition: UART.h:399
Definition: UART.h:400
UART_DataMode readDataMode
Definition: UART.h:444
UART_WriteCancelFxn writeCancelFxn
Definition: UART.h:557
Definition: UART.h:390
Definition: UART.h:412
void(* UART_InitFxn)(UART_Handle handle)
A function pointer to a driver specific implementation of UART_InitFxn().
Definition: UART.h:473
Definition: UART.h:401
UART_ReadPollingFxn readPollingFxn
Definition: UART.h:545
void(* UART_Callback)(UART_Handle, void *buf, size_t count)
The definition of a callback function used by the UART driver when used in UART_MODE_CALLBACK The cal...
Definition: UART.h:315
Definition: UART.h:422
unsigned int readTimeout
Definition: UART.h:439
UART_ReadCancelFxn readCancelFxn
Definition: UART.h:548
int UART_readPolling(UART_Handle handle, void *buffer, size_t size)
Function that reads data from a UART without interrupts. This API must be used mutually exclusive wit...
UART_LEN
UART data length settings.
Definition: UART.h:398
void(* UART_ReadCancelFxn)(UART_Handle handle)
A function pointer to a driver specific implementation of UART_ReadCancelFxn().
Definition: UART.h:499
UART Parameters.
Definition: UART.h:436
UART_FxnTable const * fxnTablePtr
Definition: UART.h:573
UART_ReadFxn readFxn
Definition: UART.h:542
UART_OpenFxn openFxn
Definition: UART.h:539
void(* UART_WriteCancelFxn)(UART_Handle handle)
A function pointer to a driver specific implementation of UART_WriteCancelFxn().
Definition: UART.h:521
Definition: UART.h:357
UART_DataMode writeDataMode
Definition: UART.h:445
UART_Mode readMode
Definition: UART.h:437
UART_WriteFxn writeFxn
Definition: UART.h:551
int(* UART_WritePollingFxn)(UART_Handle handle, const void *buffer, size_t size)
A function pointer to a driver specific implementation of UART_WritePollingFxn(). ...
Definition: UART.h:513
void * object
Definition: UART.h:576
UART Global configuration.
Definition: UART.h:571
UART_InitFxn initFxn
Definition: UART.h:536
int UART_write(UART_Handle handle, const void *buffer, size_t size)
Function that writes data to a UART with interrupts enabled.
Copyright 2016, Texas Instruments Incorporated