AVRTools
A Library for the AVR ATmega328 and ATmega2560 Microcontrollers
Loading...
Searching...
No Matches
USART3.h
Go to the documentation of this file.
1/*
2 USART3.h - Functions and classes to use USART3 on AVR systems for
3 serial I/O (includes buffering).
4 For AVR ATMega2560 (Arduino Mega).
5 This is part of the AVRTools library.
6 Copyright (c) 2015 Igor Mikolic-Torreira. All right reserved.
7 Functions readlong() and readFloat() adapted from Arduino code that
8 is Copyright (c) 2005-2006 David A. Mellis and licensed under LGPL.
9
10 This program is free software: you can redistribute it and/or modify
11 it under the terms of the GNU Lesser General Public License as published by
12 the Free Software Foundation, either version 3 of the License, or
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU Lesser General Public License for more details.
19
20 You should have received a copy of the GNU Lesser General Public License
21 along with this program. If not, see <http://www.gnu.org/licenses/>.
22*/
23
24
25#if !defined(__AVR_ATmega2560__)
26#error "USART3 doesn't exist on ATMega328p (Arduino Uno); you can only use this on ATMega2560 (Arduino Mega)."
27#endif
28
29
30
74#ifndef USART3_h
75#define USART3_h
76
77#include "Writer.h"
78#include "Reader.h"
79
80#include <stdint.h>
81#include <stddef.h>
82
83
84#ifndef USART_SERIAL_CONFIG
85#define USART_SERIAL_CONFIG
86
124
125#endif
126
127
128
129
135namespace USART3
136{
137
151 void start( unsigned long baudRate, UsartSerialConfiguration config = kSerial_8N1 );
152
153
164 void stop();
165
166
167
182 size_t write( char c );
183
184
199 size_t write( const char* c );
200
201
218 size_t write( const char* c, size_t n );
219
220
237 size_t write( const uint8_t* c, size_t n );
238
239
248 void flush();
249
250
258 int peek();
259
260
268 int read();
269
270
278 bool available();
279};
280
281
282
283
284
285
286
287
302class Serial3 : public Writer, public Reader
303{
304public:
305
318 void start( unsigned long baudRate, UsartSerialConfiguration config = kSerial_8N1 )
319 { USART3::start( baudRate, config ); }
320
321
331 void stop()
332 { USART3::stop(); }
333
334
335
336
337
346 virtual size_t write( char c );
347
356 virtual size_t write( const char* str );
357
367 virtual size_t write( const char* buffer, size_t size );
368
378 virtual size_t write( const uint8_t* buffer, size_t size );
379
385 virtual void flush();
386
387
388
389 // Virtual functions from Reader
390
398 virtual int read();
399
400
408 virtual int peek();
409
410
417 virtual bool available();
418};
419
420
421
422#endif
423
This file provides a generic interface to incoming data streams of any kind. It is designed around ho...
UsartSerialConfiguration
This enum lists serial configuration in terms of data bits, parity, and stop bits.
Definition USART0.h:91
@ kSerial_8N1
8 data bits, no parity, 1 stop bit
Definition USART0.h:95
UsartSerialConfiguration
This enum lists serial configuration in terms of data bits, parity, and stop bits.
Definition USART3.h:98
@ kSerial_8N2
8 data bits, no parity, 2 stop bits
Definition USART3.h:106
@ kSerial_6E1
6 data bits, even parity, 1 stop bit
Definition USART3.h:108
@ kSerial_5E2
5 data bits, even parity, 2 stop bits
Definition USART3.h:111
@ kSerial_7E1
7 data bits, even parity, 1 stop bit
Definition USART3.h:109
@ kSerial_5O1
5 data bits, odd parity, 1 stop bit
Definition USART3.h:115
@ kSerial_5O2
5 data bits, odd parity, 2 stop bits
Definition USART3.h:119
@ kSerial_6O1
6 data bits, odd parity, 1 stop bit
Definition USART3.h:116
@ kSerial_6N1
6 data bits, no parity, 1 stop bit
Definition USART3.h:100
@ kSerial_8O2
8 data bits, odd parity, 2 stop bits
Definition USART3.h:122
@ kSerial_8E2
8 data bits, even parity, 2 stop bits
Definition USART3.h:114
@ kSerial_8E1
8 data bits, even parity, 1 stop bit
Definition USART3.h:110
@ kSerial_6O2
6 data bits, odd parity, 2 stop bits
Definition USART3.h:120
@ kSerial_7O1
7 data bits, odd parity, 1 stop bit
Definition USART3.h:117
@ kSerial_8O1
8 data bits, odd parity, 1 stop bit
Definition USART3.h:118
@ kSerial_5N2
5 data bits, no parity, 2 stop bits
Definition USART3.h:103
@ kSerial_7E2
7 data bits, even parity, 2 stop bits
Definition USART3.h:113
@ kSerial_7N1
7 data bits, no parity, 1 stop bit
Definition USART3.h:101
@ kSerial_7N2
7 data bits, no parity, 2 stop bits
Definition USART3.h:105
@ kSerial_7O2
7 data bits, odd parity, 2 stop bits
Definition USART3.h:121
@ kSerial_6N2
6 data bits, no parity, 2 stop bits
Definition USART3.h:104
@ kSerial_8N1
8 data bits, no parity, 1 stop bit
Definition USART3.h:102
@ kSerial_5E1
5 data bits, even parity, 1 stop bit
Definition USART3.h:107
@ kSerial_6E2
6 data bits, even parity, 2 stop bits
Definition USART3.h:112
@ kSerial_5N1
5 data bits, no parity, 1 stop bit
Definition USART3.h:99
This file provides a generic interface to outgoing data streams of any kind. It is designed around ho...
This is an abstract class defining a generic interface to read numbers and strings from a sequential ...
Definition Reader.h:66
Provides a high-end interface to serial communications using USART3.
Definition USART3.h:303
virtual void flush()
Flush the output stream. When this function returns, all previously written data will have been trans...
Definition USART3.cpp:311
virtual size_t write(char c)
Write a single character to the output stream. This implements the pure virtual function Writer::writ...
Definition USART3.cpp:290
void start(unsigned long baudRate, UsartSerialConfiguration config=kSerial_8N1)
Configure the hardware for two-way serial communications, including turning on associated interrupts....
Definition USART3.h:318
virtual int peek()
Examine the next byte from the input stream, without removing it. This implements the pure virtual fu...
Definition USART3.cpp:321
void stop()
Stops buffered serial communications using Serial3 on USART3 by deconfiguring the hardware and turnin...
Definition USART3.h:331
virtual bool available()
Determine if data is available in the input stream. This implements the pure virtual function Reader:...
Definition USART3.cpp:327
virtual int read()
Read and remove the next byte from the input stream. This implements the pure virtual function Reader...
Definition USART3.cpp:316
This is an abstract class defining a generic interface to write numbers and strings to a sequential s...
Definition Writer.h:64
This namespace bundles a high-level buffered interface to the USART3 hardware. It provides logical co...
Definition USART3.h:136
size_t write(char c)
Write a single byte to the transmit buffer.
Definition USART3.cpp:197
void flush()
Flush transmit buffer.
Definition USART3.cpp:170
void start(unsigned long baudRate, UsartSerialConfiguration config=kSerial_8N1)
Initialize USART3 for buffered, asynchronous serial communications using interrupts.
Definition USART3.cpp:115
void stop()
Stops buffered serial communications using interrupts on USART3.
Definition USART3.cpp:157
int peek()
Examine the next character in the receive buffer without removing it from the buffer.
Definition USART3.cpp:183
int read()
Return the next character in the receive buffer, removing it from the buffer.
Definition USART3.cpp:190
bool available()
Determine if there is data in the receive buffer..
Definition USART3.cpp:279