RXduino  1.20a
RXduinoマニュアル 最終更新日 平成26年6月29日
serial.h
説明を見る。
1 /*******************************************************************************
2 * RXduinoライブラリ & 特電HAL
3 *
4 * このソフトウェアは特殊電子回路株式会社によって開発されたものです。
5 * 当社Webサイトを通じてダウンロードすることによって使用許諾されます。
6 * このファイルを第三者へ開示・再配布・貸与・譲渡することはできません。
7 * このソフトウェアはあるがままの状態で提供され、内容および動作についての保障はあ
8 * りません。弊社はファイルの内容および実行結果についていかなる責任も負いません。
9 * お客様は、お客様の製品開発のために当ソフトウェアのソースコードを自由に参照し、
10 * 引用していただくことができます。
11 * コンパイル・リンク後のオブジェクトファイル(ELF ファイルまたはMOT,SRECファイル)
12 * であって、デバッグ情報が削除されている場合は第三者に再配布することができます。
13 * (C) Copyright 2011-2014 TokushuDenshiKairo Inc. 特殊電子回路株式会社
14 * http://rx.tokudenkairo.co.jp/
15 *******************************************************************************/
16 
17 #ifndef __H_RXDUINO_SERIAL
18 #define __H_RXDUINO_SERIAL
19 
20 /**************************************************************************/
25 #include <stdlib.h>
26 #include "rxduino.h"
27 #include "rxstring.h"
28 //#include "Print.h"
29 #include "../tkdnhal/tkdn_sci.h"
30 
31 #ifdef __cplusplus
32  extern "C" {
33 #endif
34 
35 extern SCI_PORT SCI_DEFAULT_PORT;
36 class String;
37 
38 //------------------------------------------------------------------
39 // シリアルポート
40 //------------------------------------------------------------------
41 
42 
50 class CSerial {
51 //class CSerial: public Print {
52 private:
53  SCI_PORT port; /* ポート番号。 SCI_SCI0P2x SCI_SCI1JTAG SCI_SCI2A SCI_SCI2B SCI_SCI6A SCI_SCI6B SCI_USB0の中から指定 */
54  sci_str sci;
55  size_t print_number(unsigned long val,int base);
56 
57 public:
58  CSerial(SCI_PORT port=SCI_NONE); //
59  ~CSerial();
60 
62 
68  void begin(int bps);
69 
71 
91  void begin(int bps,SCI_PORT port);
92 
94 
98  void end();
99 
109  void setDefault();
110 
112 
116  int available();
117 
119 
123  int read();
124 
126 
130  int peek();
131 
133 
137  void flush();
138 
140 // void serialEvent();
141 
143 
147  size_t write(unsigned char val);
148 
150 
154  size_t write(const char *str);
155 
157 
161  size_t write(const String str);
162 
164 
169  size_t write(const unsigned char *buf,int len);
170 
172 
176  size_t print(const char str[]);
177 
179 
183  size_t print(const String str);
184 
186 
190  size_t print(char c);
191 
193 
202  size_t print(unsigned char c, int print_type=DEC);
203 
205 
214  size_t print(int val, int print_type=DEC);
215 
217 
226  size_t print(unsigned int val, int print_type=DEC);
227 
229 
238  size_t print(long val, int print_type=DEC);
239 
241 
250  size_t print(unsigned long val, int print_type=DEC);
251 
253 
258  size_t print(double val, int fpdigit=2);
259 
261 
265  size_t println(const char str[]);
266 
268 
272  size_t println(const String str);
273 
275 
279  size_t println(char c);
280 
282 
291  size_t println(unsigned char c, int print_type=DEC);
292 
294 
303  size_t println(int val, int print_type=DEC);
304 
306 
315  size_t println(unsigned int val, int print_type=DEC);
316 
318 
327  size_t println(long val, int print_type=DEC);
328 
330 
339  size_t println(unsigned long val, int print_type=DEC);
340 
342 
347  size_t println(double val, int fpdigit=2);
348 
350 
354  size_t println(void);
355 
357 
362  sci_str *get_handle();
363 };
364 
365 extern CSerial Serial;
366 extern CSerial Serial1;
367 extern CSerial Serial2;
368 extern CSerial Serial3;
369 
370 #ifdef __cplusplus
371  }
372 #endif
373 
374 #endif // __H_RXDUINO_SERIAL
375 
シリアル通信を制御するクラス。このクラスのインスタンスは、何らかのシリアルポートを制御する。
Definition: serial.h:50
size_t println(void)
シリアルポートに改行コードのみ出力して改行コード(\n\r)を出力する
文字列を使いやすくするためのライブラリ
SCI_PORT
SCIの動作ポート定数
Definition: tkdn_sci.h:37
size_t print(const char str[])
シリアルポートに文字列を出力する
int read()
シリアルポートの受信バッファから1バイトのデータを読み出します
void end()
シリアル通信ポートのクローズ
void setDefault()
このシリアルをデフォルトのシリアルとして設定し、printf等の出力先にする
SCIを使わない
Definition: tkdn_sci.h:38
Renesas RX62N/63N用のArduino互換ライブラリ
size_t write(unsigned char val)
この関数は実装していない
int available()
シリアルポートから何バイトのデータが読み取れるかを返す
sci_str * get_handle()
このクラスに結びつけられている特電HALのシリアル構造体へのハンドルを得る
void begin(int bps)
シリアル通信ポートの初期化 デフォルトのポート(SCI_USB0)が使用される
int peek()
シリアルポートの受信バッファにある先頭のデータを読みます。バッファ中の読み込み位置は変更しないので、バッファを覗くだけです。CRLFの変換は行われません。
void flush()
シリアルポートの送信バッファが空になるまで待ちます。受信バッファをどうするかは、Arduinoの仕様が変わっているので、検討中です。