我有这个问题,我必须打印一个带有put函数的字符串,但它正在做一些奇怪的事情。 我有一个
unsigned char string[10];
我用来存储字符串。我做了一个自定义获取(我们不能使用库),当我通过keybord发送字符串与终端程序(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++);
}
}
答案 0 :(得分:0)
发现了错误!它不是USART_puts(unsigned int),它是USART_puts(unsigned char)哈! Doopy me!