uint8_t型とunsigned char型に対応した多バイトシリアル通信用ライブラリ
Dependents: multiserial_test serial_check_controller receiverA receiver_transmitter ... more
Diff: MultiSerial.cpp
- Revision:
- 9:26262b75f40b
- Parent:
- 7:f15a96ec54e1
- Child:
- 12:5539a5dcdeff
diff -r cfc53cc4914a -r 26262b75f40b MultiSerial.cpp --- 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); }