はじめまして。
RL87/G14にてシリアル通信の処理を作成していますが、送信処理がうまくいかないため、ご教授ください。
処理は、R_UART1_Start();の後、メインループで下記SendSWResultをコールしています。
この送信電文をアナライザで確認したところ、"57"ではなく"00"となっております。
ボーレート、パリティ、データサイズはアナライザ設定と一致しています。
コード生成済みであれば、これで送信ができると思っていたのですが、何か見落としているのでしょうか?
const uint8_t message_SET[2] = {"57"};
void SendSWResult(void){ DI(); /* 割込み禁止 */ R_UART1_Send((unsigned char *)message_SET,2U); while( SSR00 & 0x0020 ) /* バッファ空き待ち */ { NOP(); } EI(); /* 割込み許可 */}
チョコです。
UART1の送信であれば、SSR00レジスタをチェックするのは間違いです。UART1の送信であれば、SSR02レジスタをチェックすべきです。
SSR00はUART0の送信ステータスレジスタです。従って、この SendSWResult関数はUART1の送信状態に無関係にwhileループを抜けてしまいます。
レジスタの関係を確認してください。
以上