简单来写一个输入输出函数

        做嵌入式产品时,因为printf函数默认输出的设备是显示屏,而我们开发工程师更多的时候是为了获取调试信息,而这调试信息我们希望是通过串口来发送,这时候,就需要我们自己来写一个输入输出函数了,因为大多数调试信息都是以字符形式存在的,所以下面的程序只是发送字符类型的



//首先要声明串口初始化的函数,这两个函数根据机器类型的不同的不同
void uart_put(char c);
char uart_put(void);

//发送一个字符的函数
void putchar(char c)
{
 //在linux系统'\n'代表回车加换行
 //在window系统'\r''\n'才代表回车加换行
 //而我们的调试信息一般在window下查看,所以要替换
 if(c == '\n')
 {
      uart_put('\r');
 }
 
     uart_put(c);
 
}


//发送字符串的函数
void puts(const char *p)
{
     while(*p == '\0')
     {
          uart_put(*p);
          p++;
     }
}


//接收字符的函数
char getchar(void)
{
     return uart_get(); 
}

//接收字符串的函数
char gets(char *p)
{
     char c;
     while((c=getchar())!= '\r')
     {
      //判断是否按了删除键
      if(c != '\b')
      {
           *p = c;
           //这个是字符回显功能
           putchar(c);
           p++;
      }
      if(c == '\b')
      { 
           //如果按了删除键,就删除前面的字符
           putchar('\b');
           putchar(' ');
           putchar('\b');
           p--;
      } 
 }
     //在字符串结尾加上结束符
     *p = '\0'; 
}








猜你喜欢

转载自blog.csdn.net/mujun0145/article/details/80490555