嵌入式C传递字符串以起作用

时间:2012-07-16 19:46:50

标签: c string winavr

我正在尝试将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 个答案:

答案 0 :(得分:5)

您正在使用sizeof运算符,并获取数据类型的大小,而不是字符串的长度。使用strlen获取字符串的长度(包括string.h strlen和其他字符串操作函数。)

答案 1 :(得分: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
    }
}