ESP32  1.0.4
HardwareSerial クラス

#include <HardwareSerial.h>

HardwareSerial の継承関係図
Stream Print

公開メンバ関数

 HardwareSerial (int uart_nr)
 
void begin (unsigned long baud, uint32_t config=SERIAL_8N1, int8_t rxPin=-1, int8_t txPin=-1, bool invert=false, unsigned long timeout_ms=20000UL)
 
void end ()
 
void updateBaudRate (unsigned long baud)
 
int available (void)
 
int availableForWrite (void)
 
int peek (void)
 
int read (void)
 
void flush (void)
 
size_t write (uint8_t)
 
size_t write (const uint8_t *buffer, size_t size)
 
size_t write (const char *s)
 
size_t write (unsigned long n)
 
size_t write (long n)
 
size_t write (unsigned int n)
 
size_t write (int n)
 
uint32_t baudRate ()
 
 operator bool () const
 
size_t setRxBufferSize (size_t)
 
void setDebugOutput (bool)
 
- 基底クラス Stream に属する継承公開メンバ関数
 Stream ()
 
virtual ~Stream ()
 
void setTimeout (unsigned long timeout)
 
unsigned long getTimeout (void)
 
bool find (const char *target)
 
bool find (uint8_t *target)
 
bool find (const char *target, size_t length)
 
bool find (const uint8_t *target, size_t length)
 
bool find (char target)
 
bool findUntil (const char *target, const char *terminator)
 
bool findUntil (const uint8_t *target, const char *terminator)
 
bool findUntil (const char *target, size_t targetLen, const char *terminate, size_t termLen)
 
bool findUntil (const uint8_t *target, size_t targetLen, const char *terminate, size_t termLen)
 
long parseInt ()
 
float parseFloat ()
 
virtual size_t readBytes (char *buffer, size_t length)
 
virtual size_t readBytes (uint8_t *buffer, size_t length)
 
size_t readBytesUntil (char terminator, char *buffer, size_t length)
 
size_t readBytesUntil (char terminator, uint8_t *buffer, size_t length)
 
virtual String readString ()
 
String readStringUntil (char terminator)
 
- 基底クラス Print に属する継承公開メンバ関数
 Print ()
 
virtual ~Print ()
 
int getWriteError ()
 
void clearWriteError ()
 
size_t write (const char *str)
 
size_t write (const char *buffer, size_t size)
 
size_t printf (const char *format,...) __attribute__((format(printf
 
size_t size_t print (const __FlashStringHelper *)
 
size_t print (const String &)
 
size_t print (const char[])
 
size_t print (char)
 
size_t print (unsigned char, int=DEC)
 
size_t print (int, int=DEC)
 
size_t print (unsigned int, int=DEC)
 
size_t print (long, int=DEC)
 
size_t print (unsigned long, int=DEC)
 
size_t print (double, int=2)
 
size_t print (const Printable &)
 
size_t print (struct tm *timeinfo, const char *format=NULL)
 
size_t println (const __FlashStringHelper *)
 
size_t println (const String &s)
 
size_t println (const char[])
 
size_t println (char)
 
size_t println (unsigned char, int=DEC)
 
size_t println (int, int=DEC)
 
size_t println (unsigned int, int=DEC)
 
size_t println (long, int=DEC)
 
size_t println (unsigned long, int=DEC)
 
size_t println (double, int=2)
 
size_t println (const Printable &)
 
size_t println (struct tm *timeinfo, const char *format=NULL)
 
size_t println (void)
 

限定公開変数類

int _uart_nr
 
uart_t_uart
 
- 基底クラス Stream に属する継承限定公開変数類
unsigned long _timeout
 
unsigned long _startMillis
 

その他の継承メンバ

- 基底クラス Stream に属する継承限定公開メンバ関数
int timedRead ()
 
int timedPeek ()
 
int peekNextDigit ()
 
long parseInt (char skipChar)
 
float parseFloat (char skipChar)
 
- 基底クラス Print に属する継承限定公開メンバ関数
void setWriteError (int err=1)
 

詳解

HardwareSerial.h53 行目に定義があります。

構築子と解体子

◆ HardwareSerial()

HardwareSerial::HardwareSerial ( int  uart_nr)

HardwareSerial.cpp31 行目に定義があります。

31 : _uart_nr(uart_nr), _uart(NULL) {}
#define NULL
Definition: def.h:70

関数詳解

◆ available()

int HardwareSerial::available ( void  )
virtual

Streamを実装しています。

HardwareSerial.cpp109 行目に定義があります。

110 {
111  return uartAvailable(_uart);
112 }
uint32_t uartAvailable(uart_t *uart)

◆ availableForWrite()

int HardwareSerial::availableForWrite ( void  )

HardwareSerial.cpp113 行目に定義があります。

114 {
116 }
uint32_t uartAvailableForWrite(uart_t *uart)

◆ baudRate()

uint32_t HardwareSerial::baudRate ( )

HardwareSerial.cpp150 行目に定義があります。

152 {
153  return uartGetBaudRate(_uart);
154 }
uint32_t uartGetBaudRate(uart_t *uart)

◆ begin()

void HardwareSerial::begin ( unsigned long  baud,
uint32_t  config = SERIAL_8N1,
int8_t  rxPin = -1,
int8_t  txPin = -1,
bool  invert = false,
unsigned long  timeout_ms = 20000UL 
)

HardwareSerial.cpp33 行目に定義があります。

34 {
35  if(0 > _uart_nr || _uart_nr > 2) {
36  log_e("Serial number is invalid, please use 0, 1 or 2");
37  return;
38  }
39  if(_uart) {
40  end();
41  }
42  if(_uart_nr == 0 && rxPin < 0 && txPin < 0) {
43  rxPin = 3;
44  txPin = 1;
45  }
46  if(_uart_nr == 1 && rxPin < 0 && txPin < 0) {
47  rxPin = RX1;
48  txPin = TX1;
49  }
50  if(_uart_nr == 2 && rxPin < 0 && txPin < 0) {
51  rxPin = RX2;
52  txPin = TX2;
53  }
54 
55  _uart = uartBegin(_uart_nr, baud ? baud : 9600, config, rxPin, txPin, 256, invert);
56 
57  if(!baud) {
59  time_t startMillis = millis();
60  unsigned long detectedBaudRate = 0;
61  while(millis() - startMillis < timeout_ms && !(detectedBaudRate = uartDetectBaudrate(_uart))) {
62  yield();
63  }
64 
65  end();
66 
67  if(detectedBaudRate) {
68  delay(100); // Give some time...
69  _uart = uartBegin(_uart_nr, detectedBaudRate, config, rxPin, txPin, 256, invert);
70  } else {
71  log_e("Could not detect baudrate. Serial data at the port must be present within the timeout for detection to be possible");
72  _uart = NULL;
73  }
74  }
75 }
#define RX1
#define yield
Definition: yield.hpp:18
unsigned long IRAM_ATTR millis()
#define NULL
Definition: def.h:70
unsigned long uartDetectBaudrate(uart_t *uart)
void delay(uint32_t ms)
#define TX1
uart_t * uartBegin(uint8_t uart_nr, uint32_t baudrate, uint32_t config, int8_t rxPin, int8_t txPin, uint16_t queueLen, bool inverted)
#define log_e(format,...)
#define TX2
_TIME_T_ time_t
Definition: timeb.h:21
void uartStartDetectBaudrate(uart_t *uart)
#define RX2

◆ end()

void HardwareSerial::end ( )

HardwareSerial.cpp82 行目に定義があります。

83 {
84  if(uartGetDebug() == _uart_nr) {
85  uartSetDebug(0);
86  }
87  uartEnd(_uart);
88  _uart = 0;
89 }
void uartSetDebug(uart_t *uart)
void uartEnd(uart_t *uart)
int uartGetDebug()

◆ flush()

void HardwareSerial::flush ( void  )
virtual

Streamを実装しています。

HardwareSerial.cpp134 行目に定義があります。

135 {
136  uartFlush(_uart);
137 }
void uartFlush(uart_t *uart)

◆ operator bool()

HardwareSerial::operator bool ( ) const

HardwareSerial.cpp155 行目に定義があります。

156 {
157  return true;
158 }

◆ peek()

int HardwareSerial::peek ( void  )
virtual

Streamを実装しています。

HardwareSerial.cpp118 行目に定義があります。

119 {
120  if (available()) {
121  return uartPeek(_uart);
122  }
123  return -1;
124 }
uint8_t uartPeek(uart_t *uart)

◆ read()

int HardwareSerial::read ( void  )
virtual

Streamを実装しています。

HardwareSerial.cpp126 行目に定義があります。

127 {
128  if(available()) {
129  return uartRead(_uart);
130  }
131  return -1;
132 }
uint8_t uartRead(uart_t *uart)

◆ setDebugOutput()

void HardwareSerial::setDebugOutput ( bool  en)

HardwareSerial.cpp95 行目に定義があります。

96 {
97  if(_uart == 0) {
98  return;
99  }
100  if(en) {
102  } else {
103  if(uartGetDebug() == _uart_nr) {
104  uartSetDebug(0);
105  }
106  }
107 }
void uartSetDebug(uart_t *uart)
int uartGetDebug()

◆ setRxBufferSize()

size_t HardwareSerial::setRxBufferSize ( size_t  new_size)

HardwareSerial.cpp91 行目に定義があります。

91  {
92  return uartResizeRxBuffer(_uart, new_size);
93 }
size_t uartResizeRxBuffer(uart_t *uart, size_t new_size)

◆ updateBaudRate()

void HardwareSerial::updateBaudRate ( unsigned long  baud)

HardwareSerial.cpp77 行目に定義があります。

78 {
79  uartSetBaudRate(_uart, baud);
80 }
void uartSetBaudRate(uart_t *uart, uint32_t baud_rate)

◆ write() [1/7]

size_t HardwareSerial::write ( uint8_t  c)
virtual

Printを実装しています。

HardwareSerial.cpp139 行目に定義があります。

140 {
141  uartWrite(_uart, c);
142  return 1;
143 }
void uartWrite(uart_t *uart, uint8_t c)

◆ write() [2/7]

size_t HardwareSerial::write ( const uint8_t buffer,
size_t  size 
)
virtual

Printを再実装しています。

HardwareSerial.cpp145 行目に定義があります。

146 {
148  return size;
149 }
macro cache_index_all size
Definition: cacheasm.h:158
char * buffer
Definition: cJSON.h:161
void uartWriteBuf(uart_t *uart, const uint8_t *data, size_t len)

◆ write() [3/7]

size_t HardwareSerial::write ( const char *  s)
inline

HardwareSerial.h69 行目に定義があります。

70  {
71  return write((uint8_t*) s, strlen(s));
72  }
size_t write(uint8_t)
__uint8_t uint8_t
Definition: stdint.h:21

◆ write() [4/7]

size_t HardwareSerial::write ( unsigned long  n)
inline

HardwareSerial.h73 行目に定義があります。

74  {
75  return write((uint8_t) n);
76  }
size_t write(uint8_t)
__uint8_t uint8_t
Definition: stdint.h:21

◆ write() [5/7]

size_t HardwareSerial::write ( long  n)
inline

HardwareSerial.h77 行目に定義があります。

78  {
79  return write((uint8_t) n);
80  }
size_t write(uint8_t)
__uint8_t uint8_t
Definition: stdint.h:21

◆ write() [6/7]

size_t HardwareSerial::write ( unsigned int  n)
inline

HardwareSerial.h81 行目に定義があります。

82  {
83  return write((uint8_t) n);
84  }
size_t write(uint8_t)
__uint8_t uint8_t
Definition: stdint.h:21

◆ write() [7/7]

size_t HardwareSerial::write ( int  n)
inline

HardwareSerial.h85 行目に定義があります。

86  {
87  return write((uint8_t) n);
88  }
size_t write(uint8_t)
__uint8_t uint8_t
Definition: stdint.h:21

メンバ詳解

◆ _uart

uart_t* HardwareSerial::_uart
protected

HardwareSerial.h97 行目に定義があります。

◆ _uart_nr

int HardwareSerial::_uart_nr
protected

HardwareSerial.h96 行目に定義があります。


このクラス詳解は次のファイルから抽出されました: