uint8_t型とunsigned char型に対応した多バイトシリアル通信用ライブラリ
Dependents: multiserial_test serial_check_controller receiverA receiver_transmitter ... more
Revision 9:26262b75f40b, committed 2014-09-02
- Comitter:
- Hatter
- Date:
- Tue Sep 02 06:49:44 2014 +0000
- Parent:
- 8:cfc53cc4914a
- Child:
- 10:ce09c92e33b4
- Commit message:
- ???????????; ???????????????
Changed in this revision
MultiSerial.cpp | Show annotated file Show diff for this revision Revisions of this file |
MultiSerial.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/MultiSerial.cpp Thu Aug 28 05:09:00 2014 +0000 +++ b/MultiSerial.cpp Tue Sep 02 06:49:44 2014 +0000 @@ -5,25 +5,48 @@ #include "mbed.h" #include "MultiSerial.h" - MultiSerial::MultiSerial(PinName tx,PinName rx) : __serial__(tx,rx){} + + MultiSerial::MultiSerial(PinName tx,PinName rx,dir_state state) : __serial__(tx,rx){ + + switch(state){ + + case read: + { + __serial__.attach(this,&MultiSerial::RX,Serial::RxIrq); + uint8_t k = __serial__.getc(); + break; + } + + case write: + { + __serial__.attach(this,&MultiSerial::TX,Serial::TxIrq); + __serial__.putc(1); + break; + } + + case both: + { + __serial__.attach(this,&MultiSerial::RX,Serial::RxIrq); + uint8_t m = __serial__.getc(); + __serial__.attach(this,&MultiSerial::TX,Serial::TxIrq); + __serial__.putc(1); + } + } + } - void MultiSerial::read(uint8_t* readData,uint8_t readKey){ + void MultiSerial::read_data(uint8_t* readData,uint8_t readKey){ __readData = readData; __readSize = __SIZE(__readData); __readKey = readKey; - __serial__.attach(this,&MultiSerial::RX,Serial::RxIrq); - uint8_t k = __serial__.getc(); } - void MultiSerial::write(uint8_t* writeData,uint8_t writeKey){ + void MultiSerial::write_data(uint8_t* writeData,uint8_t writeKey){ __writeData=writeData; __writeSize = __SIZE(__writeData); __writeKey = writeKey; - __serial__.attach(this,&MultiSerial::TX,Serial::TxIrq); - __serial__.putc(1); }
--- a/MultiSerial.h Thu Aug 28 05:09:00 2014 +0000 +++ b/MultiSerial.h Tue Sep 02 06:49:44 2014 +0000 @@ -42,6 +42,13 @@ * } * @endcode */ + + typedef enum dit_state{ + write, + read, + both + + }dir_state; class MultiSerial{ @@ -51,9 +58,10 @@ * * @param tx Serial tx pin * @param rx Serial rx pin + * @param state 通信方向 read,write,both */ - MultiSerial(PinName tx,PinName rx); + MultiSerial(PinName tx,PinName rx,dit_state state=both); /**データ読み込みするよ * @@ -61,7 +69,7 @@ * @param readKey 多バイト通信のキーコード */ - void read(uint8_t* readData,uint8_t readKey); + void read_data(uint8_t* readData,uint8_t readKey); /**データカキコするよ * @@ -69,7 +77,7 @@ * @param writeKey 多バイト通信のキーコード */ - void write(uint8_t* writeData,uint8_t writeKey); + void write_data(uint8_t* writeData,uint8_t writeKey); /**送信割り込み用関数 *