modify to nucleo stm32F411

Dependencies:   RingBuffer

Dependents:   MX_control Program_BEAR_Protocol SwitchMode BEAR_Motion ... more

Fork of iSerial by Yoji KURODA

Revision:
2:3fc74f4d685a
Parent:
0:1d193cb1a933
Child:
3:d5353b68105f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/iSerial.h	Fri Aug 31 17:32:00 2012 +0000
@@ -0,0 +1,80 @@
+//
+//  iSerial.h ... Serial Driver with Interrupt Rec/Send
+//
+//  Copyright 2012  Yoji KURODA
+//
+//  2009.11.13 ... Originally written by Y.Kuroda for Renesas H83664
+//  2012.08.31 ... Code convert for mbed in C++
+//
+#ifndef _ISERIAL_H
+#define _ISERIAL_H
+
+#include <string.h>
+#include "RingBuffer.h"
+
+
+class ISerial : public Serial {
+  protected:
+
+    RingBuffer txbuf;
+    RingBuffer rxbuf;
+
+    void tx_handler(void);
+    void rx_handler(void);
+
+
+  public:
+
+    enum TERMINL_CODES { CR=0x0D, LF=0x0A };
+
+    /*
+     *  void init_sci(void)
+     *
+     * ポート初期化関数....すべてのI/Oの設定を行っている.
+     *
+     *  引数:なし
+     *  戻り値:なし
+     *
+     */
+    ISerial(PinName _tx, PinName _rx, const char *_name=NULL, int _txbufsize=100, int _rxbufsize=100);
+
+    /*
+     *  シリアル入力に文字があるかどうかチェック
+     *  返値:    0  :文字がない
+     *            0以外:文字が来ている
+     */
+    int readable(void);
+    
+    /*
+     *  シリアルから一文字入力
+     */
+    int getc(void);
+    
+    /*
+     * シリアルへ一文字出力
+     */
+    void putc(short ch);
+    
+
+    /*
+     * シリアルへ文字列を出力
+     *  注:一回の最大文字数はLINESIZE
+     *  注:文字列の終わりにはヌル文字が必要.
+     *
+     *  引数:文字列へのポインタ
+     *  返値:出力した文字数
+     */
+    short int putstr(const char* s);
+
+    /* void outs(char* s)
+     * シリアルへ文字列を一行出力
+     *  注:最後に改行コードを送る他はoutstrと同じ
+     *
+     *  引数:文字列へのポインタ
+     *  返値:出力した文字数
+     */
+    short int puts(const char* s);
+};
+
+
+#endif    /* _SCI_H */