uint8_t型とunsigned char型に対応した多バイトシリアル通信用ライブラリ

Dependents:   multiserial_test serial_check_controller receiverA receiver_transmitter ... more

Committer:
Hatter
Date:
Thu Aug 21 00:05:00 2014 +0000
Revision:
0:77c15e33dfd1
Child:
1:123ee4ce9fe4
debug?????????debugger???????; ??????????????;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Hatter 0:77c15e33dfd1 1 /*
Hatter 0:77c15e33dfd1 2 *mbed Multibyte Serial Library
Hatter 0:77c15e33dfd1 3 *This comment is available in Japanese only
Hatter 0:77c15e33dfd1 4 */
Hatter 0:77c15e33dfd1 5
Hatter 0:77c15e33dfd1 6
Hatter 0:77c15e33dfd1 7
Hatter 0:77c15e33dfd1 8 #ifndef MBED_MULTISERIAL
Hatter 0:77c15e33dfd1 9 #define MBED_MULTISERIAL
Hatter 0:77c15e33dfd1 10
Hatter 0:77c15e33dfd1 11 #include"mbed.h"
Hatter 0:77c15e33dfd1 12
Hatter 0:77c15e33dfd1 13 #define __SIZE(array) (sizeof(array) / sizeof(array[0]))
Hatter 0:77c15e33dfd1 14
Hatter 0:77c15e33dfd1 15 /** 多バイト通信用クラス 多バイト言ってるけどuint8_t型かunsigned char型の8bit数値しか対応してません。 文字とか無理なんで。
Hatter 0:77c15e33dfd1 16 *
Hatter 0:77c15e33dfd1 17 * Example:
Hatter 0:77c15e33dfd1 18 * @code
Hatter 0:77c15e33dfd1 19 * #include"mbed.h"
Hatter 0:77c15e33dfd1 20 * #include"MultiSerial.h"
Hatter 0:77c15e33dfd1 21 *
Hatter 0:77c15e33dfd1 22 * MultiSerial test1(p9,p10);
Hatter 0:77c15e33dfd1 23 * MultiSerial test2(USBTX,USBRX);
Hatter 0:77c15e33dfd1 24 *
Hatter 0:77c15e33dfd1 25 * int main(){
Hatter 0:77c15e33dfd1 26 *
Hatter 0:77c15e33dfd1 27 * uint8_t data1[5]={0};
Hatter 0:77c15e33dfd1 28 * test1.write(data1, 0xAA);
Hatter 0:77c15e33dfd1 29 * uint8_t data2[8]={0};
Hatter 0:77c15e33dfd1 30 * test2.read(data2, 0xAA);
Hatter 0:77c15e33dfd1 31 *
Hatter 0:77c15e33dfd1 32 *
Hatter 0:77c15e33dfd1 33 * for(;;);
Hatter 0:77c15e33dfd1 34 * }
Hatter 0:77c15e33dfd1 35 * @endcode
Hatter 0:77c15e33dfd1 36 */
Hatter 0:77c15e33dfd1 37
Hatter 0:77c15e33dfd1 38
Hatter 0:77c15e33dfd1 39 class MultiSerial {
Hatter 0:77c15e33dfd1 40
Hatter 0:77c15e33dfd1 41 public:
Hatter 0:77c15e33dfd1 42
Hatter 0:77c15e33dfd1 43 /** 多バイト通信用オブジェクト作成 Serialにそのままつなげるよ
Hatter 0:77c15e33dfd1 44 *
Hatter 0:77c15e33dfd1 45 * @param tx Serial tx pin
Hatter 0:77c15e33dfd1 46 * @param rx Serial rx pin
Hatter 0:77c15e33dfd1 47 */
Hatter 0:77c15e33dfd1 48 MultiSerial(PinName tx,PinName rx);
Hatter 0:77c15e33dfd1 49
Hatter 0:77c15e33dfd1 50 /**データ読み込みするよ 
Hatter 0:77c15e33dfd1 51 *
Hatter 0:77c15e33dfd1 52 * @param value 読み込み先の配列アドレス
Hatter 0:77c15e33dfd1 53 * @param size 配列の要素数
Hatter 0:77c15e33dfd1 54 * @param keycode 多バイト通信のキーコード
Hatter 0:77c15e33dfd1 55 */
Hatter 0:77c15e33dfd1 56 void start_read(uint8_t* value,int size,uint8_t keycode);
Hatter 0:77c15e33dfd1 57
Hatter 0:77c15e33dfd1 58 /**データカキコするよ
Hatter 0:77c15e33dfd1 59 *
Hatter 0:77c15e33dfd1 60 * @param value 送るデーターの配列アドレス
Hatter 0:77c15e33dfd1 61 * @param size 配列の要素数
Hatter 0:77c15e33dfd1 62 * @param keycode 多バイト通信のキーコード
Hatter 0:77c15e33dfd1 63 */
Hatter 0:77c15e33dfd1 64
Hatter 0:77c15e33dfd1 65 void start_write(uint8_t* value,int size,uint8_t keycode);
Hatter 0:77c15e33dfd1 66 /*
Hatter 0:77c15e33dfd1 67 void writeAttach(void (*func)()){
Hatter 0:77c15e33dfd1 68 __serial__.attach(func,Serial::TxIrq);
Hatter 0:77c15e33dfd1 69 }
Hatter 0:77c15e33dfd1 70
Hatter 0:77c15e33dfd1 71 void readAttach(void(*func)()){
Hatter 0:77c15e33dfd1 72 __serial__.attach(func,Serial::RxIrq);
Hatter 0:77c15e33dfd1 73 }
Hatter 0:77c15e33dfd1 74 */
Hatter 0:77c15e33dfd1 75 /**シリアル通信 受信割り込み ルーチン 
Hatter 0:77c15e33dfd1 76 * @param none
Hatter 0:77c15e33dfd1 77 */
Hatter 0:77c15e33dfd1 78 void RX(void);
Hatter 0:77c15e33dfd1 79 /**シリアル通信 送信バッファ空き割り込みルーチン
Hatter 0:77c15e33dfd1 80 * @param none
Hatter 0:77c15e33dfd1 81 */
Hatter 0:77c15e33dfd1 82 void TX(void);
Hatter 0:77c15e33dfd1 83
Hatter 0:77c15e33dfd1 84 /** データ読み込み起動するよ
Hatter 0:77c15e33dfd1 85 *
Hatter 0:77c15e33dfd1 86 * @param value 読み込み先の配列アドレス
Hatter 0:77c15e33dfd1 87 * @param keycode 多バイト通信のキーコード
Hatter 0:77c15e33dfd1 88 */
Hatter 0:77c15e33dfd1 89 void read(uint8_t* value,uint8_t keycode);
Hatter 0:77c15e33dfd1 90 /**データカキコ起動するよ 
Hatter 0:77c15e33dfd1 91 *
Hatter 0:77c15e33dfd1 92 * @param value 送信データの配列アドレス
Hatter 0:77c15e33dfd1 93 * @param keycode 多バイト通信のキーコード
Hatter 0:77c15e33dfd1 94 */
Hatter 0:77c15e33dfd1 95
Hatter 0:77c15e33dfd1 96 void write(uint8_t* value,uint8_t keycode);
Hatter 0:77c15e33dfd1 97
Hatter 0:77c15e33dfd1 98 protected:
Hatter 0:77c15e33dfd1 99
Hatter 0:77c15e33dfd1 100 Serial __serial__;
Hatter 0:77c15e33dfd1 101 uint8_t *__readData;
Hatter 0:77c15e33dfd1 102 uint8_t *__writeData;
Hatter 0:77c15e33dfd1 103 int __readSize;
Hatter 0:77c15e33dfd1 104 int __writeSize;
Hatter 0:77c15e33dfd1 105 uint8_t __readKey;
Hatter 0:77c15e33dfd1 106 uint8_t __writeKey;
Hatter 0:77c15e33dfd1 107
Hatter 0:77c15e33dfd1 108 };
Hatter 0:77c15e33dfd1 109 #endif