Serial hardware abstraction layer interfaces.
License# Copyright 2020 Silicon Laboratories Inc. www.silabs.com
The licensor of this software is Silicon Laboratories Inc. Your use of this software is governed by the terms of Silicon Labs Master Software License Agreement (MSLA) available at www.silabs.com/about-us/legal/master-software-license-agreement. This software is distributed to you in Source Code format and is governed by the sections of the MSLA applicable to Source Code.
#ifndef SERIAL_H
#define SERIAL_H
#include < stdarg. h>
#include "sl_status.h"
#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum SerialBaudRate
#else
#ifndef DEFINE_BAUD
#define DEFINE_BAUD ( num) BAUD_##num
#endif
#ifdef CORTEXM3_EFM32_MICRO
typedef uint32_t SerialBaudRate;
#else
typedef uint8_t SerialBaudRate;
#endif
enum
#endif
#ifdef CORTEXM3_EFM32_MICRO
{
DEFINE_BAUD ( 300 ) = 300 ,
DEFINE_BAUD ( 600 ) = 600 ,
DEFINE_BAUD ( 900 ) = 900 ,
DEFINE_BAUD ( 1200 ) = 1200 ,
DEFINE_BAUD ( 2400 ) = 2400 ,
DEFINE_BAUD ( 4800 ) = 4800 ,
DEFINE_BAUD ( 9600 ) = 9600 ,
DEFINE_BAUD ( 14400 ) = 14400 ,
DEFINE_BAUD ( 19200 ) = 19200 ,
DEFINE_BAUD ( 28800 ) = 28800 ,
DEFINE_BAUD ( 38400 ) = 38400 ,
DEFINE_BAUD ( 50000 ) = 50000 ,
DEFINE_BAUD ( 57600 ) = 57600 ,
DEFINE_BAUD ( 76800 ) = 76800 ,
DEFINE_BAUD ( 100000 ) = 100000 ,
DEFINE_BAUD ( 115200 ) = 115200
} ;
#else
{
DEFINE_BAUD ( 300 ) = 0 ,
DEFINE_BAUD ( 600 ) = 1 ,
DEFINE_BAUD ( 900 ) = 2 ,
DEFINE_BAUD ( 1200 ) = 3 ,
DEFINE_BAUD ( 2400 ) = 4 ,
DEFINE_BAUD ( 4800 ) = 5 ,
DEFINE_BAUD ( 9600 ) = 6 ,
DEFINE_BAUD ( 14400 ) = 7 ,
DEFINE_BAUD ( 19200 ) = 8 ,
DEFINE_BAUD ( 28800 ) = 9 ,
DEFINE_BAUD ( 38400 ) = 10 ,
DEFINE_BAUD ( 50000 ) = 11 ,
DEFINE_BAUD ( 57600 ) = 12 ,
DEFINE_BAUD ( 76800 ) = 13 ,
DEFINE_BAUD ( 100000 ) = 14 ,
DEFINE_BAUD ( 115200 ) = 15 ,
DEFINE_BAUD ( 230400 ) = 16 ,
DEFINE_BAUD ( 460800 ) = 17 ,
DEFINE_BAUD ( CUSTOM) = 18
} ;
#endif
#ifdef CORTEXM3_EFM32_MICRO
typedef enum COM_Port {
COM_VCP = 0 ,
COM_USART0 = 1 ,
COM_USART1 = 2 ,
COM_USART2 = 3 ,
comPortVcp = 0x10 ,
comPortUsart0 = 0x20 ,
comPortUsart1 = 0x21 ,
comPortUsart2 = 0x22 ,
comPortUsart3 = 0x23 ,
} COM_Port_t;
typedef uint8_t SerialParity;
#define PARITY_NONE usartNoParity
#define PARITY_ODD usartOddParity
#define PARITY_EVEN usartEvenParity
#else
#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum SerialParity
#else
#ifndef DEFINE_PARITY
#define DEFINE_PARITY ( val) PARITY_##val
#endif
typedef uint8_t SerialParity;
enum
#endif
{
DEFINE_PARITY ( NONE) = 0 U,
DEFINE_PARITY ( ODD) = 1 U,
DEFINE_PARITY ( EVEN) = 2 U
} ;
#endif
sl_status_t sli_legacy_serial_init ( uint8_t port,
SerialBaudRate rate,
SerialParity parity,
uint8_t stopBits) ;
sl_status_t sli_legacy_serial_read_byte ( uint8_t port, uint8_t * dataByte) ;
sl_status_t sl_legacy_serial_read_data ( uint8_t port,
uint8_t * data,
uint16_t length,
uint16_t * bytesRead) ;
sl_status_t sli_legacy_serial_write_byte ( uint8_t port, uint8_t dataByte) ;
sl_status_t sli_legacy_serial_printf ( uint8_t port, const char * formatString, . . . ) ;
sl_status_t sli_legacy_serial_printf_line ( uint8_t port, const char * formatString, . . . ) ;
sl_status_t sli_legacy_serial_print_carriage_return ( uint8_t port) ;
sl_status_t sli_legacy_serial_printf_var_arg ( uint8_t port, const char * formatString, va_list ap) ;
sl_status_t sli_legacy_serial_wait_send ( uint8_t port) ;
sl_status_t sli_legacy_serial_guaranteed_printf ( uint8_t port, const char * formatString, . . . ) ;
#endif
Enumerations# enum
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
DEFINE_BAUD =(300) = 0
}
Assign numerical values for variables that hold Baud Rate parameters.
enum
DEFINE_PARITY =(NONE) = 0U
DEFINE_PARITY =(NONE) = 0U
DEFINE_PARITY =(NONE) = 0U
}
Enumeration Documentation# SerialBaudRate# SerialBaudRate Assign numerical values for variables that hold Baud Rate parameters.
Enumerator DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD DEFINE_BAUD
SerialParity# SerialParity CORTEXM3_EFM32_MICRO.
Assign numerical values for the types of parity. Use for variables that hold Parity parameters.
Enumerator DEFINE_PARITY DEFINE_PARITY DEFINE_PARITY
Function Documentation# sli_legacy_serial_read_byte# sl_status_t sli_legacy_serial_read_byte (uint8_t port, uint8_t * dataByte) Parameters Type Direction Argument Name Description uint8_t N/A port uint8_t * N/A dataByte
sl_legacy_serial_read_data# sl_status_t sl_legacy_serial_read_data (uint8_t port, uint8_t * data, uint16_t length, uint16_t * bytesRead) Parameters Type Direction Argument Name Description uint8_t N/A port uint8_t * N/A data uint16_t N/A length uint16_t * N/A bytesRead
sli_legacy_serial_write_byte# sl_status_t sli_legacy_serial_write_byte (uint8_t port, uint8_t dataByte) Parameters Type Direction Argument Name Description uint8_t N/A port uint8_t N/A dataByte
sli_legacy_serial_printf# sl_status_t sli_legacy_serial_printf (uint8_t port, const char * formatString, ... ) Parameters Type Direction Argument Name Description uint8_t N/A port const char * N/A formatString ... N/A
sli_legacy_serial_printf_line# sl_status_t sli_legacy_serial_printf_line (uint8_t port, const char * formatString, ... ) Parameters Type Direction Argument Name Description uint8_t N/A port const char * N/A formatString ... N/A
sli_legacy_serial_print_carriage_return# sl_status_t sli_legacy_serial_print_carriage_return (uint8_t port) Parameters Type Direction Argument Name Description uint8_t N/A port
sli_legacy_serial_printf_var_arg# sl_status_t sli_legacy_serial_printf_var_arg (uint8_t port, const char * formatString, va_list ap) Parameters Type Direction Argument Name Description uint8_t N/A port const char * N/A formatString va_list N/A ap
sli_legacy_serial_wait_send# sl_status_t sli_legacy_serial_wait_send (uint8_t port) Parameters Type Direction Argument Name Description uint8_t N/A port
sli_legacy_serial_guaranteed_printf# sl_status_t sli_legacy_serial_guaranteed_printf (uint8_t port, const char * formatString, ... ) Parameters Type Direction Argument Name Description uint8_t N/A port const char * N/A formatString ... N/A