/*\r
LUFA Library\r
- Copyright (C) Dean Camera, 2009.\r
+ Copyright (C) Dean Camera, 2010.\r
\r
dean [at] fourwalledcubicle [dot] com\r
www.fourwalledcubicle.com\r
*/\r
\r
/*\r
- Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+ Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
\r
- Permission to use, copy, modify, and distribute this software\r
- and its documentation for any purpose and without fee is hereby\r
- granted, provided that the above copyright notice appear in all\r
- copies and that both that the copyright notice and this\r
- permission notice and warranty disclaimer appear in supporting\r
- documentation, and that the name of the author not be used in\r
- advertising or publicity pertaining to distribution of the\r
+ Permission to use, copy, modify, distribute, and sell this \r
+ software and its documentation for any purpose is hereby granted\r
+ without fee, provided that the above copyright notice appear in \r
+ all copies and that both that the copyright notice and this\r
+ permission notice and warranty disclaimer appear in supporting \r
+ documentation, and that the name of the author not be used in \r
+ advertising or publicity pertaining to distribution of the \r
software without specific, written prior permission.\r
\r
The author disclaim all warranties with regard to this\r
* USART.\r
**/\r
\r
-/** \ingroup Group_SubsystemDrivers\r
+/** \ingroup Group_PeripheralDrivers\r
* @defgroup Group_SerialStream Serial Stream Driver - LUFA/Drivers/Peripheral/SerialStream.h\r
*\r
- * Functions, macros, variables, enums and types related to the setup of a serial stream, so that standard printf and other\r
- * C stream functions can be used on the serial port.\r
+ * \section Sec_Dependencies Module Source Dependencies\r
+ * The following files must be built with any user project that uses this module:\r
+ * - LUFA/Drivers/Peripheral/SerialStream.c\r
+ *\r
+ * \section Module Description\r
+ * Serial stream driver for the USART subsystem on supported USB AVRs. This makes use of the functions in the\r
+ * regular USART driver, but allows the avr-libc standard stream functions (printf, puts, etc.) to work with the\r
+ * USART.\r
*\r
* @{\r
*/\r
extern FILE USARTStream;\r
\r
/* Function Prototypes: */\r
- int SerialStream_TxByte(char DataByte, FILE *Stream) ATTR_NON_NULL_PTR_ARG(2);\r
- int SerialStream_RxByte(FILE *Stream) ATTR_NON_NULL_PTR_ARG(1);\r
+ #if defined(__INCLUDE_FROM_SERIALSTREAM_C)\r
+ static int SerialStream_TxByte(char DataByte, FILE *Stream) ATTR_NON_NULL_PTR_ARG(2);\r
+ static int SerialStream_RxByte(FILE *Stream) ATTR_NON_NULL_PTR_ARG(1);\r
+ #endif\r
#endif\r
\r
/* Public Interface - May be used in end-application: */\r
/** Initializes the serial stream (and regular USART driver) so that both the stream and regular\r
* USART driver functions can be used. Must be called before any stream or regular USART functions.\r
*\r
- * \param BaudRate Baud rate to configure the USART to\r
- * \param DoubleSpeed Enables double speed mode when set, halving the sample time to double the baud rate\r
+ * \param[in] BaudRate Baud rate to configure the USART to\r
+ * \param[in] DoubleSpeed Enables double speed mode when set, halving the sample time to double the baud rate\r
*/\r
static inline void SerialStream_Init(const uint32_t BaudRate, const bool DoubleSpeed)\r
{\r
Serial_Init(BaudRate, DoubleSpeed);\r
\r
stdout = &USARTStream;\r
+ stdin = &USARTStream;\r
}\r
+ \r
+ /** Turns off the serial stream (and regular USART driver), disabling and returning used hardware to\r
+ * their default configuration.\r
+ */\r
+ static inline void SerialStream_ShutDown(void)\r
+ {\r
+ Serial_ShutDown();\r
+ } \r
\r
/* Disable C linkage for C++ Compilers: */\r
#if defined(__cplusplus)\r