PSoCでバイナリ送受信 その3

どうも、Ramencozoです。

前回PSoCでバイナリな送受信のテストしてて、「受信割込みで飛んできたデータをその場でechoすることはできた」のですが、「受信割込みで飛んできたデータを配列に保存しておいてあとで好きなタイミングで取り出す」ことがうまくいってなかったので記事Post。

基本的に設定下記な感じで。
・9600bps,データ8bit,スタート/ストップ1bit,フローなし
・P2[0]をPullDownで立上がりな入力きた時にGPIO割込み


main.c

//----------------------------------------------------------------------------
// C main line
//----------------------------------------------------------------------------

#include // part specific constants and macros
#include
#include "PSoCAPI.h" // PSoC API definitions for all User Modules

//LightTab BT Address - 98:F5:37:A1:0E:65

#define BUF_SIZE 200
#define CMD_MODE 0
#define DATA_MODE 0

void init(void);
void wait(unsigned int times);
BOOL receiveData(BYTE *data);
void cleareData(BYTE *data);
void cleareFormatedData(BYTE *array);

unsigned char j;
BYTE data[BUF_SIZE];

#pragma interrupt_handler GPIO_INT
void GPIO_INT(void){
unsigned char i;
if((PRT2DR & 0x01) == 1){
for(i=0; i

もっかしたら必要ないコードが混じってるかもです。(I2Cのテストなコード書き足したヤツを再度I2C周り削って書いてるので)

ちなみに。こないだからBluetoothデバイスをまた触り始めてます。
といっても少し前にヌッ壊したソレとは別で、「RBT-001」っていう技適とれてるモジュールです。

[f:id:ramencozo:20110531185504j:image]

SPPなプロトコル載ってて、フォーマットに基づいたHexなバイナリデータ流して設定してあげるとあとはRS232Cの通信と同じ状態になるっていうモジュールです。価格はだいたい\6000くらい。
ちなみに写真のヤツは接続コネクタが市販のと異なりますが、これはデフォのヤツだと基板のコネクタに刺さるオス側のヤツを持ってなかったので、自分で丸ピンオスなヤツを曲げて無理やりつけました(゚∀゚)おかげでブレッドボードに直刺し可能だったりします。

でもってコレとAndroidとをイチャイチャさせてたりします。マイコン側からペアリングかけてもいいんですが、Androidのほうからペアリングしたほうが楽です。
モジュールの電源ONにしてしばらくしたらAndroidのほうからデフォルトのパスキー「0000」を入力してペアリングかけると、一回マイコン側に「SPP Link確立しましたよー」なデータ流れたのち、単純なUARTと化します。そこからは
データ投げ放題なのですごい楽(゚∀゚)

とまぁ今回はひとまずこんな感じで。それではまたー(´ω`)ノシ