diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2015-05-17 13:01:13 +1000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2015-05-17 13:01:13 +1000 |
commit | 366a8461566edd7982e8eb6b0790365f6d99e3ab (patch) | |
tree | 486cc5b4af162143ecca661e1e738b73668c958e /LUFA/Drivers/Peripheral/XMEGA | |
parent | a9364a866f99334f3aee5a58480ae5bc5e7a5a02 (diff) | |
download | lufa-366a8461566edd7982e8eb6b0790365f6d99e3ab.tar.gz lufa-366a8461566edd7982e8eb6b0790365f6d99e3ab.tar.bz2 lufa-366a8461566edd7982e8eb6b0790365f6d99e3ab.zip |
Fix incorrect XMEGA serial driver stream functions (thanks to William Patterson).
Diffstat (limited to 'LUFA/Drivers/Peripheral/XMEGA')
-rw-r--r-- | LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c | 12 | ||||
-rw-r--r-- | LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h | 8 |
2 files changed, 12 insertions, 8 deletions
diff --git a/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c b/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c index 4e2935730..ff3ac0d4f 100644 --- a/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c +++ b/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c @@ -95,19 +95,20 @@ void Serial_SendData(USART_t* const USART, Serial_SendByte(USART, *((uint8_t*)Buffer++)); } -void Serial_CreateStream(FILE* Stream) +void Serial_CreateStream(USART_t* USART, FILE* Stream) { if (!(Stream)) { Stream = &USARTSerialStream; stdin = Stream; stdout = Stream; - } + } - *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar, _FDEV_SETUP_RW); + *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar, _FDEV_SETUP_RW); + fdev_set_udata(Stream, USART); } -void Serial_CreateBlockingStream(FILE* Stream) +void Serial_CreateBlockingStream(USART_t* USART, FILE* Stream) { if (!(Stream)) { @@ -116,7 +117,8 @@ void Serial_CreateBlockingStream(FILE* Stream) stdout = Stream; } - *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar_Blocking, _FDEV_SETUP_RW); + *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar_Blocking, _FDEV_SETUP_RW); + fdev_set_udata(Stream, USART); } #endif diff --git a/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h b/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h index 1fed433e6..58f97011b 100644 --- a/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h +++ b/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h @@ -151,22 +151,24 @@ * be used when the read data is processed byte-per-bye (via \c getc()) or when the user application will implement its own * line buffering. * + * \param[in,out] USART Pointer to the base of the USART peripheral within the device. * \param[in,out] Stream Pointer to a FILE structure where the created stream should be placed, if \c NULL, \c stdout * and \c stdin will be configured to use the USART. * * \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used. */ - void Serial_CreateStream(FILE* Stream); + void Serial_CreateStream(USART_t* USART, FILE* Stream); - /** Identical to \ref Serial_CreateStream(), except that reads are blocking until the calling stream function terminates + /** Identical to \ref Serial_CreateStream(), except that reads are blocking until the calling stream function terminates * the transfer. * + * \param[in,out] USART Pointer to the base of the USART peripheral within the device. * \param[in,out] Stream Pointer to a FILE structure where the created stream should be placed, if \c NULL, \c stdout * and \c stdin will be configured to use the USART. * * \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used. */ - void Serial_CreateBlockingStream(FILE* Stream); + void Serial_CreateBlockingStream(USART_t* USART, FILE* Stream); /* Inline Functions: */ /** Initializes the USART, ready for serial data transmission and reception. This initializes the interface to |