将功能放在avr跳过字符中

时间:2014-07-24 03:02:44

标签: c terminal microcontroller avr

我有这个问题,我必须打印一个带有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++);
    }
}

1 个答案:

答案 0 :(得分:0)

发现了错误!它不是USART_puts(unsigned int),它是USART_puts(unsigned char)哈! Doopy me!