【发布时间】:2014-07-24 03:02:43
【问题描述】:
我有这个问题,我必须用我制作的 puts 函数打印一个字符串,但它正在做一些奇怪的事情。 我有一个
unsigned char string[10];
我用来存储字符串。我做了一个自定义获取(我们不能使用库),当我使用终端程序(Mttty)通过键盘发送字符串时,它会完美地打印字符串。 但是,当我使用 puts 时,直接字符串它不起作用,例如:
USART_gets(string);
USART_puts(string);
这段代码有效,它打印的字符串与我通过终端输入的完全一样,现在问题出现在这段代码中:
USART_puts("Hello");
这个,在终端上给了我这个:
Hlo
有什么想法吗?这是 putchar 和 puts 的代码。
void USART_putchar( unsigned char caracter )
{
while ( !( UCSR0A & (1<<UDRE0)) );
UDR0 = caracter;
}
void USART_puts(unsigned int *string){
while(*string){
USART_putchar(*string++);
}
}
【问题讨论】:
标签: c terminal microcontroller avr