0

Embedded C を使用して特定のエスケープ シーケンスを送信する際に助けが必要です。これは、stackoverflow での最初のトピックです。

この関数を使用して、UART 経由でコマンドを書き込みます。

void UART_Write(UARTChannel* channel, uint8_t* data, uint32_t length) 

入力のチャネル、データ、および長さは、それぞれ UART チャネル、送信するコマンド、およびコマンドの長さに対応します。これは一般的にうまく機能します!

ただし、C で正しいエスケープ シーケンスを生成するのにいくつかの困難があります。UART_Write 関数を使用して、次のエスケープ シーケンスを記述する必要があります。

EscR0,1,2,7;

Escエスケープ文字 (0x1b)、R0文字コマンド指定子、1,2,7コンテキスト固有のパラメーター、および;終了記号です。

関数「UART_Write」への入力「データ」をエスケープシーケンス EscR0,1,2,7; と等しくするにはどうすればよいですか。埋め込みCで?

いろいろな方法でできると思いますが、どんな提案でも構いません。

4

1 に答える 1

0

「esc」を送信しますか、それとも「1b」を 16 進値として送信しますか?

他の文字列と同じように、文字を送信するだけです

たとえば、次の例: EscR0,1,2,7;:

char buffer[20] = {'\0'};
buffer[0] = 0x1b;
strcat( buffer, "R0,1,2,6;" );
....
于 2016-10-15T17:29:59.137 に答える