1

マイクロコントローラの出力にバイト単位で C の文字配列を送信しようとしています。私は次のコードを使用しています:

int main() {
...
   LogOutput("Hello World!");
}

void LogOutput(char *msg) {

    int i;
    for (i = 0; i < sizeof(msg); i++) {
        USART0_TX(msg[i]);              // transmit byte
    }
}

ただし、これは最初の2文字「He」のみを送信します---私が間違っていることを誰か知っていますか?

4

2 に答える 2

5

sizeof演算子を使用していて、文字列の長さではなく、データ型のサイズを取得しています。strlen文字列の長さを取得するために使用します ( string.hforstrlenおよびその他の文字列操作関数を含みます)。

于 2012-07-16T19:47:56.930 に答える
1
int main() {
...
   LogOutput("Hello World!");
}

void LogOutput(char *msg) {

    int i;
    for (i = 0; i < strlen(msg); i++) {
        USART0_TX(msg[i]);              // transmit byte
    }
}
于 2012-07-16T19:51:51.653 に答える