Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

 

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

◆ 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

◆ sb_console_connect()

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
baudbaud rate for serial connection
paritypairty type (even/odd) if enabled
stopbitsnumber of stop bits (1 or 2)
Return values
0connection successfully set up
-1Baud rate achieved is higher than allowed
-2Baud rate achieved is lower than allowed
-3Baud rate value overflow
-4;invalid stop bit count

◆ sb_console_connect_default()

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

◆ sb_console_getChar()

char sb_console_getChar ( )

Read the next character.

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

Return values
characterread from console

◆ sb_console_getString()

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
stringpointer to buffer
sizesize of buffer
Return values
stringon success
NULLon error or when end of file occurs while no characters have been read

◆ sb_console_putChar()

int8_t sb_console_putChar ( char  character)

Prints a single character.

Parameters
charactercharacter to print
Return values
-1on error
0on success

◆ sb_console_putString()

int8_t sb_console_putString ( const char *  string)

Writes the string and a trailing newline.

Parameters
stringstring to print
Return values
-1on error
0on success

◆ sb_console_putStringFromFlash()

int8_t sb_console_putStringFromFlash ( const __flash char *  string)

Writes the string and a trailing newline.

Parameters
stringstring from flash memory to print
Return values
-1on error
0on success