【问题标题】:Puts function in avr skipping chars将函数放入 avr 跳过字符
【发布时间】: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


    【解决方案1】:

    发现错误!它不是 void USART_puts(unsigned int) 它是 USART_puts(unsigned char) 哈!把我弄糊涂了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-16
      • 1970-01-01
      相关资源
      最近更新 更多