<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-cn">
		<id>http://wiki.ywrobot.net/index.php?action=history&amp;feed=atom&amp;title=HardwareSerial.h</id>
		<title>HardwareSerial.h - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.ywrobot.net/index.php?action=history&amp;feed=atom&amp;title=HardwareSerial.h"/>
		<link rel="alternate" type="text/html" href="http://wiki.ywrobot.net/index.php?title=HardwareSerial.h&amp;action=history"/>
		<updated>2026-05-14T11:01:52Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://wiki.ywrobot.net/index.php?title=HardwareSerial.h&amp;diff=62&amp;oldid=prev</id>
		<title>YWrobot WM：创建页面，内容为“&lt;pre style=&quot;color:blue&quot;&gt; /*   HardwareSerial.h - Hardware serial library for Wiring   Copyright (c) 2006 Nicholas Zambetti.  All right reserved.    This library is f...”</title>
		<link rel="alternate" type="text/html" href="http://wiki.ywrobot.net/index.php?title=HardwareSerial.h&amp;diff=62&amp;oldid=prev"/>
				<updated>2016-04-25T02:02:19Z</updated>
		
		<summary type="html">&lt;p&gt;创建页面，内容为“&amp;lt;pre style=&amp;quot;color:blue&amp;quot;&amp;gt; /*   HardwareSerial.h - Hardware serial library for Wiring   Copyright (c) 2006 Nicholas Zambetti.  All right reserved.    This library is f...”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre style=&amp;quot;color:blue&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
  HardwareSerial.h - Hardware serial library for Wiring&lt;br /&gt;
  Copyright (c) 2006 Nicholas Zambetti.  All right reserved.&lt;br /&gt;
&lt;br /&gt;
  This library is free software; you can redistribute it and/or&lt;br /&gt;
  modify it under the terms of the GNU Lesser General Public&lt;br /&gt;
  License as published by the Free Software Foundation; either&lt;br /&gt;
  version 2.1 of the License, or (at your option) any later version.&lt;br /&gt;
&lt;br /&gt;
  This library is distributed in the hope that it will be useful,&lt;br /&gt;
  but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
  Lesser General Public License for more details.&lt;br /&gt;
&lt;br /&gt;
  You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
  License along with this library; if not, write to the Free Software&lt;br /&gt;
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA&lt;br /&gt;
&lt;br /&gt;
  Modified 28 September 2010 by Mark Sproul&lt;br /&gt;
  Modified 14 August 2012 by Alarus&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
#ifndef HardwareSerial_h&lt;br /&gt;
#define HardwareSerial_h&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;Stream.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
struct ring_buffer;&lt;br /&gt;
&lt;br /&gt;
class HardwareSerial : public Stream&lt;br /&gt;
{&lt;br /&gt;
  private:&lt;br /&gt;
    ring_buffer *_rx_buffer;&lt;br /&gt;
    ring_buffer *_tx_buffer;&lt;br /&gt;
    volatile uint8_t *_ubrrh;&lt;br /&gt;
    volatile uint8_t *_ubrrl;&lt;br /&gt;
    volatile uint8_t *_ucsra;&lt;br /&gt;
    volatile uint8_t *_ucsrb;&lt;br /&gt;
    volatile uint8_t *_ucsrc;&lt;br /&gt;
    volatile uint8_t *_udr;&lt;br /&gt;
    uint8_t _rxen;&lt;br /&gt;
    uint8_t _txen;&lt;br /&gt;
    uint8_t _rxcie;&lt;br /&gt;
    uint8_t _udrie;&lt;br /&gt;
    uint8_t _u2x;&lt;br /&gt;
    bool transmitting;&lt;br /&gt;
  public:&lt;br /&gt;
    HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer,&lt;br /&gt;
      volatile uint8_t *ubrrh, volatile uint8_t *ubrrl,&lt;br /&gt;
      volatile uint8_t *ucsra, volatile uint8_t *ucsrb,&lt;br /&gt;
      volatile uint8_t *ucsrc, volatile uint8_t *udr,&lt;br /&gt;
      uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x);&lt;br /&gt;
    void begin(unsigned long);&lt;br /&gt;
    void begin(unsigned long, uint8_t);&lt;br /&gt;
    void end();&lt;br /&gt;
    virtual int available(void);&lt;br /&gt;
    virtual int peek(void);&lt;br /&gt;
    virtual int read(void);&lt;br /&gt;
    virtual void flush(void);&lt;br /&gt;
    virtual size_t write(uint8_t);&lt;br /&gt;
    inline size_t write(unsigned long n) { return write((uint8_t)n); }&lt;br /&gt;
    inline size_t write(long n) { return write((uint8_t)n); }&lt;br /&gt;
    inline size_t write(unsigned int n) { return write((uint8_t)n); }&lt;br /&gt;
    inline size_t write(int n) { return write((uint8_t)n); }&lt;br /&gt;
    using Print::write; // pull in write(str) and write(buf, size) from Print&lt;br /&gt;
    operator bool();&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Define config for Serial.begin(baud, config);&lt;br /&gt;
#define SERIAL_5N1 0x00&lt;br /&gt;
#define SERIAL_6N1 0x02&lt;br /&gt;
#define SERIAL_7N1 0x04&lt;br /&gt;
#define SERIAL_8N1 0x06&lt;br /&gt;
#define SERIAL_5N2 0x08&lt;br /&gt;
#define SERIAL_6N2 0x0A&lt;br /&gt;
#define SERIAL_7N2 0x0C&lt;br /&gt;
#define SERIAL_8N2 0x0E&lt;br /&gt;
#define SERIAL_5E1 0x20&lt;br /&gt;
#define SERIAL_6E1 0x22&lt;br /&gt;
#define SERIAL_7E1 0x24&lt;br /&gt;
#define SERIAL_8E1 0x26&lt;br /&gt;
#define SERIAL_5E2 0x28&lt;br /&gt;
#define SERIAL_6E2 0x2A&lt;br /&gt;
#define SERIAL_7E2 0x2C&lt;br /&gt;
#define SERIAL_8E2 0x2E&lt;br /&gt;
#define SERIAL_5O1 0x30&lt;br /&gt;
#define SERIAL_6O1 0x32&lt;br /&gt;
#define SERIAL_7O1 0x34&lt;br /&gt;
#define SERIAL_8O1 0x36&lt;br /&gt;
#define SERIAL_5O2 0x38&lt;br /&gt;
#define SERIAL_6O2 0x3A&lt;br /&gt;
#define SERIAL_7O2 0x3C&lt;br /&gt;
#define SERIAL_8O2 0x3E&lt;br /&gt;
&lt;br /&gt;
#if defined(UBRRH) || defined(UBRR0H)&lt;br /&gt;
  extern HardwareSerial Serial;&lt;br /&gt;
#elif defined(USBCON)&lt;br /&gt;
  #include &amp;quot;USBAPI.h&amp;quot;&lt;br /&gt;
//  extern HardwareSerial Serial_;  &lt;br /&gt;
#endif&lt;br /&gt;
#if defined(UBRR1H)&lt;br /&gt;
  extern HardwareSerial Serial1;&lt;br /&gt;
#endif&lt;br /&gt;
#if defined(UBRR2H)&lt;br /&gt;
  extern HardwareSerial Serial2;&lt;br /&gt;
#endif&lt;br /&gt;
#if defined(UBRR3H)&lt;br /&gt;
  extern HardwareSerial Serial3;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
extern void serialEventRun(void) __attribute__((weak));&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>YWrobot WM</name></author>	</entry>

	</feed>