Files | Enumerations | Functions
Serial Console

In- and output using a serial console. More...

## Files
file | console.h

## Enumerations
enum | CONSOLE_PARITY { PARITY_DISABLED , PARITY_EVEN , PARITY_ODD }
| Parity bit types. More...

## Functions
int8_t | sb_console_connect (uint32_t baud, CONSOLE_PARITY parity, uint8_t stopbits)
| Connect to serial console. More...
int8_t | sb_console_connect_default (void)
| Connect to serial console with default settings. More...
char | sb_console_getChar ()
| Read the next character. More...
char * | sb_console_getString (char *string, uint16_t size)
| Read a line into the buffer. More...
int8_t | sb_console_putChar (char character)
| Prints a single character. More...
int8_t | sb_console_putString (const char *string)
| Writes the string and a trailing newline. More...
int8_t | sb_console_putStringFromFlash (const __flash char *string)
| Writes the string and a trailing newline. More...

## Detailed Description

In- and output using a serial console.

This adds the ability to print and read from a connected serial console (via USB). You can use the primitives supplied by this module or even printf and scanf.

In Atmel Studio 7 select Menu "Tools" and choose "Data Visualizer". Click on sidebar "Configuration" In frame "Modules" expand "External Connection" and select "Serial Port" Configure "Serial Port Control Panel":

- choose the correct interface (something like "mEDBG Virtual COM Port (COM4)"
- set the "Baud rate" to the same value as the "BAUD_RATE" macro (by default 38400)
- choose correct "Parity" (default "disabled") and "Stop bits" (default "1")
- check "DTR" and "Open Terminal" (and "RTS" on slow systems) Click "Connect"

In Linux you can try to connect to the console using the libspicboard make target "console":

Warning
  Cannot be used in conjunction with any other serial communication (including Serial Communication )
  Using printf/scanf (and derived functions) will consume a noticeable amount of flash memory!

## Enumeration Type Documentation

enum CONSOLE_PARITY

Parity bit types.

Enumerator
PARITY_DISABLED | parity bit disabled
PARITY_EVEN | use even parity bit
PARITY_ODD | use odd parity bit

## Function Documentation

int8_t sb_console_connect | ( | uint32_t | baud,
|  | CONSOLE_PARITY | parity,
|  | uint8_t | stopbits
| ) |  |

Connect to serial console.

Specify the baud rate, parity type and number of stop bits and initiate a connection using the serial port (USART)

Parameters

  baud | baud rate for serial connection
  parity | pairty type (even/odd) if enabled
  stopbits | number of stop bits (1 or 2)

Return values

  0 | connection successfully set up
  -1 | Baud rate achieved is higher than allowed
  -2 | Baud rate achieved is lower than allowed
  -3 | Baud rate value overflow
  -4; | invalid stop bit count

int8_t sb_console_connect_default | ( | void |  | ) |

Connect to serial console with default settings.

Connect with 38400 baud, no parity and single stop bit to a serial console.

This is automatically used for the sb_console_* functions if sb_console_connect was not called before.

Return values

  0 | connection successfully set up
  -1 | Baud rate achieved is higher than allowed
  -2 | Baud rate achieved is lower than allowed
  -3 | Baud rate value overflow
  -4; | invalid stop bit count

char sb_console_getChar | ( |  | ) |

Read the next character.

Invalid read operations (end of file) will return '\0'

Return values

  character | read from console

char * sb_console_getString | ( | char * | string,
|  | uint16_t | size
| ) |  |

Read a line into the buffer.

This function reads in at most one less than size characters and stores them into the buffer pointed to by the char array. Reading stops after an EOF or a newline. If a newline is read, it is stored into the buffer. A terminating null byte (\0) is stored after the last character in the buffer.

Parameters

  string | pointer to buffer
  size | size of buffer

Return values

  string | on success
  NULL | on error or when end of file occurs while no characters have been read

int8_t sb_console_putChar | ( | char | character | ) |

Prints a single character.

Parameters

  character | character to print

Return values

  -1 | on error
  0 | on success

int8_t sb_console_putString | ( | const char * | string | ) |

Writes the string and a trailing newline.

Parameters

  string | string to print

Return values

  -1 | on error
  0 | on success

int8_t sb_console_putStringFromFlash | ( | const __flash char * | string | ) |

Writes the string and a trailing newline.

Parameters

  string | string from flash memory to print

Return values

  -1 | on error
  0 | on success