AVRTools
A Library for the AVR ATmega328 and ATmega2560 Microcontrollers
Loading...
Searching...
No Matches
USART1.h
Go to the documentation of this file.
1/*
2 USART1.h - Functions and classes to use USART1 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 "USART1 doesn't exist on ATMega328p (Arduino Uno); you can only use this on ATMega2560 (Arduino Mega)."
27#endif
28
29
30
74#ifndef USART1_h
75#define USART1_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 USART1
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 Serial1 : public Writer, public Reader
303{
304public:
305
318 void start( unsigned long baudRate, UsartSerialConfiguration config = kSerial_8N1 )
319 { USART1::start( baudRate, config ); }
320
321
331 void stop()
332 { USART1::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 USART1.h:98
@ kSerial_8N2
8 data bits, no parity, 2 stop bits
Definition USART1.h:106
@ kSerial_6E1
6 data bits, even parity, 1 stop bit
Definition USART1.h:108
@ kSerial_5E2
5 data bits, even parity, 2 stop bits
Definition USART1.h:111
@ kSerial_7E1
7 data bits, even parity, 1 stop bit
Definition USART1.h:109
@ kSerial_5O1
5 data bits, odd parity, 1 stop bit
Definition USART1.h:115
@ kSerial_5O2
5 data bits, odd parity, 2 stop bits
Definition USART1.h:119
@ kSerial_6O1
6 data bits, odd parity, 1 stop bit
Definition USART1.h:116
@ kSerial_6N1
6 data bits, no parity, 1 stop bit
Definition USART1.h:100
@ kSerial_8O2
8 data bits, odd parity, 2 stop bits
Definition USART1.h:122
@ kSerial_8E2
8 data bits, even parity, 2 stop bits
Definition USART1.h:114
@ kSerial_8E1
8 data bits, even parity, 1 stop bit
Definition USART1.h:110
@ kSerial_6O2
6 data bits, odd parity, 2 stop bits
Definition USART1.h:120
@ kSerial_7O1
7 data bits, odd parity, 1 stop bit
Definition USART1.h:117
@ kSerial_8O1
8 data bits, odd parity, 1 stop bit
Definition USART1.h:118
@ kSerial_5N2
5 data bits, no parity, 2 stop bits
Definition USART1.h:103
@ kSerial_7E2
7 data bits, even parity, 2 stop bits
Definition USART1.h:113
@ kSerial_7N1
7 data bits, no parity, 1 stop bit
Definition USART1.h:101
@ kSerial_7N2
7 data bits, no parity, 2 stop bits
Definition USART1.h:105
@ kSerial_7O2
7 data bits, odd parity, 2 stop bits
Definition USART1.h:121
@ kSerial_6N2
6 data bits, no parity, 2 stop bits
Definition USART1.h:104
@ kSerial_8N1
8 data bits, no parity, 1 stop bit
Definition USART1.h:102
@ kSerial_5E1
5 data bits, even parity, 1 stop bit
Definition USART1.h:107
@ kSerial_6E2
6 data bits, even parity, 2 stop bits
Definition USART1.h:112
@ kSerial_5N1
5 data bits, no parity, 1 stop bit
Definition USART1.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 USART1.
Definition USART1.h:303
virtual bool available()
Determine if data is available in the input stream. This implements the pure virtual function Reader:...
Definition USART1.cpp:326
virtual int read()
Read and remove the next byte from the input stream. This implements the pure virtual function Reader...
Definition USART1.cpp:315
virtual int peek()
Examine the next byte from the input stream, without removing it. This implements the pure virtual fu...
Definition USART1.cpp:320
virtual void flush()
Flush the output stream. When this function returns, all previously written data will have been trans...
Definition USART1.cpp:310
virtual size_t write(char c)
Write a single character to the output stream. This implements the pure virtual function Writer::writ...
Definition USART1.cpp:289
void stop()
Stops buffered serial communications using Serial1 on USART1 by deconfiguring the hardware and turnin...
Definition USART1.h:331
void start(unsigned long baudRate, UsartSerialConfiguration config=kSerial_8N1)
Configure the hardware for two-way serial communications, including turning on associated interrupts....
Definition USART1.h:318
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 USART1 hardware. It provides logical co...
Definition USART1.h:136
void stop()
Stops buffered serial communications using interrupts on USART1.
Definition USART1.cpp:156
void flush()
Flush transmit buffer.
Definition USART1.cpp:169
void start(unsigned long baudRate, UsartSerialConfiguration config=kSerial_8N1)
Initialize USART1 for buffered, asynchronous serial communications using interrupts.
Definition USART1.cpp:114
size_t write(char c)
Write a single byte to the transmit buffer.
Definition USART1.cpp:196
bool available()
Determine if there is data in the receive buffer..
Definition USART1.cpp:278
int peek()
Examine the next character in the receive buffer without removing it from the buffer.
Definition USART1.cpp:182
int read()
Return the next character in the receive buffer, removing it from the buffer.
Definition USART1.cpp:189