serial_extend library for array data transmission and reception
Dependents: receives_robot_wheel
serial_extend.h
- Committer:
- bousiya03
- Date:
- 2014-10-04
- Revision:
- 0:fbf5705f90cc
- Child:
- 1:e808dd01f134
File content as of revision 0:fbf5705f90cc:
/* *mbed array data serial Library *This comment is available in Japanese only */ #ifndef serial_extend_H #define serial_extend_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"serial_extend.h" * BusOut check(LED3,LED4); * uint8_t send_data[2]={0,0xF}; * uint8_t get_data[2]; * serial_extend send(p9,p10); * serial_extend get(p28,p27); * * int main(){ * * send.write(send_data,0x0A); * get.read(get_data,0x0A); * for(int i=1;;i++){ * * check = get_data[i]; * wait(0.1); * if(i==2){i=0;} * * } * } * @endcode */ /* typedef enum { write, read, both }dir_state; */ class serial_extend{ public: /** 多バイト通信用オブジェクト作成 Serialにそのままつなげるよ * * @param tx Serial tx pin * @param rx Serial rx pin * @param state 通信方向 read,write,both */ serial_extend(PinName tx,PinName rx); /**データ読み込みするよ * * @param readData 読み込み先の配列アドレス * @param readKey 多バイト通信のキーコード */ void read_data(uint8_t* readData,uint8_t readKey); /**データカキコするよ * * @param writeData 送るデーターの配列アドレス * @param writeKey 多バイト通信のキーコード */ void write_data(uint8_t* writeData,uint8_t writeKey); /**送信割り込み用関数 * *@param none */ void TX(void); /**受信割り込み用関数 * *@param none */ void RX(void); void start_read(); void stop_read(); void start_write(); void stop_write(); uint8_t readable_check(); protected: RawSerial __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; volatile uint8_t __stop_read; volatile uint8_t __stop_write; }; #endif