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

Dependents:   multiserial_test serial_check_controller receiverA receiver_transmitter ... more

MultiSerial.h

Committer:
Hatter
Date:
2014-08-28
Revision:
7:f15a96ec54e1
Parent:
6:49c82ca5aa37
Child:
8:cfc53cc4914a

File content as of revision 7:f15a96ec54e1:

/* 
 *mbed Multibyte Serial Library
 *This comment is available in Japanese only
 */
 

#ifndef MULTISERIAL_H
#define MULTISERIAL_H

#include "mbed.h"

#define __SIZE(array) (sizeof(array) / sizeof(array[0]))


#define MAX_DATA_NUM 10
#define KEY 0//number of first data

/** 多バイト通信用クラス 
 *
 * Example:
 * @code
 *     #include"mbed.h"
 *   #include"MultiSerial.h"
 *   
 *   MultiSerial test1(p9,p10);
 *   MultiSerial test2(USBTX,USBRX);
 *
 *   int main(){
 *
 *   uint8_t data1[5]={0};
 *   test1.write(data1, 0xAA);
 *   uint8_t data2[8]={0};
 *   test2.read(data2, 0xAA);    
 *   
 *   
 *   for(;;);  
 * }
 * @endcode
 */

class MultiSerial{

    public:
    
        /** 多バイト通信用オブジェクト作成 Serialにそのままつなげるよ
         *
         * @param tx Serial tx pin
         * @param rx Serial rx pin
         */ 

        MultiSerial(PinName tx,PinName rx);
        
        /**データ読み込みするよ 
         *
         * @param readData 読み込み先の配列アドレス
         * @param readKey 多バイト通信のキーコード
         */

        void read(uint8_t* readData,uint8_t readKey);
        
        /**データカキコするよ
         *
         * @param writeData 送るデーターの配列アドレス
         * @param writeKey 多バイト通信のキーコード
         */

        void write(uint8_t* writeData,uint8_t writeKey);

        /**送信割り込み用関数
         *
         *@param none
         */
        void TX(void);
        /**受信割り込み用関数
         *
         *@param none
         */
        void RX(void);
        

    protected:

        Serial __serial__;

        volatile    uint8_t* __readData;
        volatile    uint8_t __readSize;
        volatile    uint8_t __readKey;

        volatile    uint8_t* __writeData;
        volatile    uint8_t __writeSize;
        volatile    uint8_t __writeKey;

};
#endif