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
    }
}

然而,这只发送前两个字母“他”——有人知道我做错了什么吗?

4

2 回答 2

5

您正在使用sizeof运算符,并获取datatype的大小,而不是字符串的长度。用于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 回答