お世話になっております。
マイコン初心者にアドバイスをお願いいたします。
PDG2(V.2.09)を用いてe2 studio(V.6.0.0)でソースコードを生成し、
マイコン(RX63T)とTeraTerm(V.4.96)でシリアル通信を行っています。
E1デバッガを用いてPDG2のライブラリファイルの動作を確認しているのですが、
TeraTermのマクロで4byteのデータ”ABCD”を送信しても、
ソースコード内のR_PG_SCI_StartReceiving_C1(data, 4);のdata内に1byteしか書き込まれていません。
ソースコード
void main(void){ while(1) { //R_PG_SCI_ReceiveAllData_C1(data,4); //R_PG_SCI_SendAllData_C1(data,4); R_PG_SCI_StartReceiving_C1(data, 4); ☆ここに1byteのデータしか入っていません。 R_PG_SCI_StartSending_C1(data, 4); ☆ここに1byteのデータしか入っていません。 }}
//全データを受信すると呼び出される受信終了通知関数 void Sci1ReFunc(void) { //SCI1通信終了 R_PG_SCI_StopCommunication_C1(); } //全データが送信されると呼び出される送信終了通知関数 void Sci1TrFunc(void) { //SCI1通信終了 R_PG_SCI_StopCommunication_C1(); }
想定としては、data内に4byteのデータが格納されるはずなのですが、うまくできません。
分かる方ご教授お願いいたします。
8666.RX63T_3.zip
わわいです >私もuint8_t data[4]=”ABCD"とするとうまく通信できるのですが、 あ、それダメですw "ABCD" という文字列は5文字分必要です。文字列終端の '\0'が入るところが必要となります。
#最初の質問の data はどういう定義になってるんだろう。。
追記:ああ、元の送受信関数は文字列の想定でもないからこれでもいいのか。ドキュメント読む限り、コード生成のところで通知関数を登録するようになってるとみえるけど、そこらへんどーしました?