Fixed incorrect definition of the HID_KEYBOARD_SC_RIGHT_ARROW constant in the HID...
[pub/USBasp.git] / LUFA / Drivers / Peripheral / SerialStream.h
index 87478ee..cf376e9 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2010.
+     Copyright (C) Dean Camera, 2011.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -32,8 +32,8 @@
  *  \brief Standard avr-libc character stream driver for the USART.
  *
  *  Serial stream driver for the USART subsystem on supported USB AVRs. This makes use of the functions in the
- *  regular USART driver (see \ref Group_Serial), but allows the avr-libc standard stream functions (printf,
- *  puts, etc.) to work with the
+ *  regular USART driver (see \ref Group_Serial), but allows the avr-libc standard stream functions (\c printf,
+ *  \c puts, etc.) to work with the
  *  USART.
  */
 
  *  The following files must be built with any user project that uses this module:
  *    - LUFA/Drivers/Peripheral/SerialStream.c <i>(Makefile source module name: LUFA_SRC_SERIALSTREAM)</i>
  *
- *  \section Module Description
+ *  \section Sec_ModDescription Module Description
  *  Serial stream driver for the USART subsystem on supported USB AVRs. This makes use of the functions in the
- *  regular USART driver (see \ref Group_Serial), but allows the avr-libc standard stream functions (printf,
- *  puts, etc.) to work with the
- *  USART.
+ *  regular USART driver (see \ref Group_Serial), but allows the avr-libc standard stream functions (\c printf,
+ *  \c puts, etc.) to work with the USART. Upon configuration, this will redirect the \c stdin standard input
+ *  and \c stdout output streams to the USART.
+ *
+ *  \section Sec_ExampleUsage Example Usage
+ *  The following snippet is an example of how this module may be used within a typical
+ *  application.
+ *
+ *  \code
+ *      // Initialise the Serial Stream driver before first use, with 9600 baud (and no double-speed mode)
+ *      SerialStream_Init(9600, false);
+ *
+ *      // Write a string to the USART via the implicit stdout stream
+ *      printf("Test String using stdout\r\n");
+ *
+ *      // Write a string to the USART via the explicit USART stream
+ *      fprintf(&USARTStream, "Test String using explicit stream handle\r\n");
+ * 
+ *      // Read in an integer from the USART using the implicit stdin stream
+ *      uint16_t TestValue;
+ *      scanf("%d", &TestValue);
+ *  \endcode
  *
  *  @{
  */
@@ -69,9 +88,6 @@
 
        /* Private Interface - For use in library only: */
        #if !defined(__DOXYGEN__)
-               /* External Variables: */
-                       extern FILE USARTStream;
-
                /* Function Prototypes: */
                #if defined(__INCLUDE_FROM_SERIALSTREAM_C)
                        static int SerialStream_TxByte(char DataByte,
        #endif
 
        /* Public Interface - May be used in end-application: */
+               /* External Variables: */
+                       /** Named stream for the USART, once \ref SerialStream_Init() has been called. This may be used with the
+                        *  file based stream functions (fprintf, fscanf, etc.) that require a handle to the stream rather than
+                        *  using the stdin and stdout named streams.
+                        */
+                       extern FILE USARTStream;
+
                /* Inline Functions: */
                        /** Initialises the serial stream (and regular USART driver) so that both the stream and regular
                         *  USART driver functions can be used. Must be called before any stream or regular USART functions.