我正在尝试将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
}
}
然而,这只发送前两个字母“他”---有人知道我做错了吗?
答案 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
}
}