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

Dependents:   multiserial_test serial_check_controller receiverA receiver_transmitter ... more

Committer:
Hatter
Date:
Thu Aug 28 04:57:01 2014 +0000
Revision:
7:f15a96ec54e1
Parent:
6:49c82ca5aa37
Child:
8:cfc53cc4914a
????????

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 7:f15a96ec54e1 5
Hatter 0:77c15e33dfd1 6
Hatter 7:f15a96ec54e1 7 #ifndef MULTISERIAL_H
Hatter 7:f15a96ec54e1 8 #define MULTISERIAL_H
Hatter 0:77c15e33dfd1 9
Hatter 7:f15a96ec54e1 10 #include "mbed.h"
Hatter 0:77c15e33dfd1 11
Hatter 0:77c15e33dfd1 12 #define __SIZE(array) (sizeof(array) / sizeof(array[0]))
Hatter 0:77c15e33dfd1 13
Hatter 7:f15a96ec54e1 14
Hatter 7:f15a96ec54e1 15 #define MAX_DATA_NUM 10
Hatter 7:f15a96ec54e1 16 #define KEY 0//number of first data
Hatter 6:49c82ca5aa37 17
Hatter 1:123ee4ce9fe4 18 /** 多バイト通信用クラス 
Hatter 0:77c15e33dfd1 19 *
Hatter 0:77c15e33dfd1 20 * Example:
Hatter 0:77c15e33dfd1 21 * @code
Hatter 0:77c15e33dfd1 22 * #include"mbed.h"
Hatter 0:77c15e33dfd1 23 * #include"MultiSerial.h"
Hatter 0:77c15e33dfd1 24 *
Hatter 0:77c15e33dfd1 25 * MultiSerial test1(p9,p10);
Hatter 0:77c15e33dfd1 26 * MultiSerial test2(USBTX,USBRX);
Hatter 0:77c15e33dfd1 27 *
Hatter 0:77c15e33dfd1 28 * int main(){
Hatter 0:77c15e33dfd1 29 *
Hatter 0:77c15e33dfd1 30 * uint8_t data1[5]={0};
Hatter 0:77c15e33dfd1 31 * test1.write(data1, 0xAA);
Hatter 0:77c15e33dfd1 32 * uint8_t data2[8]={0};
Hatter 0:77c15e33dfd1 33 * test2.read(data2, 0xAA);
Hatter 0:77c15e33dfd1 34 *
Hatter 0:77c15e33dfd1 35 *
Hatter 0:77c15e33dfd1 36 * for(;;);
Hatter 0:77c15e33dfd1 37 * }
Hatter 0:77c15e33dfd1 38 * @endcode
Hatter 0:77c15e33dfd1 39 */
Hatter 0:77c15e33dfd1 40
Hatter 7:f15a96ec54e1 41 class MultiSerial{
Hatter 0:77c15e33dfd1 42
Hatter 0:77c15e33dfd1 43 public:
Hatter 7:f15a96ec54e1 44
Hatter 6:49c82ca5aa37 45 /** 多バイト通信用オブジェクト作成 Serialにそのままつなげるよ
Hatter 6:49c82ca5aa37 46 *
Hatter 6:49c82ca5aa37 47 * @param tx Serial tx pin
Hatter 6:49c82ca5aa37 48 * @param rx Serial rx pin
Hatter 7:f15a96ec54e1 49 */
Hatter 7:f15a96ec54e1 50
Hatter 0:77c15e33dfd1 51 MultiSerial(PinName tx,PinName rx);
Hatter 7:f15a96ec54e1 52
Hatter 6:49c82ca5aa37 53 /**データ読み込みするよ 
Hatter 6:49c82ca5aa37 54 *
Hatter 7:f15a96ec54e1 55 * @param readData 読み込み先の配列アドレス
Hatter 7:f15a96ec54e1 56 * @param readKey 多バイト通信のキーコード
Hatter 6:49c82ca5aa37 57 */
Hatter 0:77c15e33dfd1 58
Hatter 7:f15a96ec54e1 59 void read(uint8_t* readData,uint8_t readKey);
Hatter 7:f15a96ec54e1 60
Hatter 7:f15a96ec54e1 61 /**データカキコするよ
Hatter 7:f15a96ec54e1 62 *
Hatter 7:f15a96ec54e1 63 * @param writeData 送るデーターの配列アドレス
Hatter 7:f15a96ec54e1 64 * @param writeKey 多バイト通信のキーコード
Hatter 7:f15a96ec54e1 65 */
Hatter 6:49c82ca5aa37 66
Hatter 7:f15a96ec54e1 67 void write(uint8_t* writeData,uint8_t writeKey);
Hatter 7:f15a96ec54e1 68
Hatter 7:f15a96ec54e1 69 /**送信割り込み用関数
Hatter 7:f15a96ec54e1 70 *
Hatter 7:f15a96ec54e1 71 *@param none
Hatter 6:49c82ca5aa37 72 */
Hatter 0:77c15e33dfd1 73 void TX(void);
Hatter 7:f15a96ec54e1 74 /**受信割り込み用関数
Hatter 6:49c82ca5aa37 75 *
Hatter 7:f15a96ec54e1 76 *@param none
Hatter 7:f15a96ec54e1 77 */
Hatter 7:f15a96ec54e1 78 void RX(void);
Hatter 7:f15a96ec54e1 79
Hatter 6:49c82ca5aa37 80
Hatter 6:49c82ca5aa37 81 protected:
Hatter 6:49c82ca5aa37 82
Hatter 6:49c82ca5aa37 83 Serial __serial__;
Hatter 7:f15a96ec54e1 84
Hatter 7:f15a96ec54e1 85 volatile uint8_t* __readData;
Hatter 7:f15a96ec54e1 86 volatile uint8_t __readSize;
Hatter 7:f15a96ec54e1 87 volatile uint8_t __readKey;
Hatter 7:f15a96ec54e1 88
Hatter 7:f15a96ec54e1 89 volatile uint8_t* __writeData;
Hatter 7:f15a96ec54e1 90 volatile uint8_t __writeSize;
Hatter 7:f15a96ec54e1 91 volatile uint8_t __writeKey;
Hatter 7:f15a96ec54e1 92
Hatter 0:77c15e33dfd1 93 };
Hatter 7:f15a96ec54e1 94 #endif