⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 putchar.c

📁 新华龙c8051f020单片机 串口调试示例程序
💻 C
字号:
/*串口1通信底层函数*/
#include <c8051f020.h>                 // SFR declarations

#define XON  0x11
#define XOFF 0x13


/*
 * putchar (full version):  expands '\n' into CR LF and handles
 *                          XON/XOFF (Ctrl+S/Ctrl+Q) protocol
 */
char putchar (char c)  {

  if (c == '\n')  {
    if ((SCON1&0X1)==0X1)  {
      if (SBUF1 == XOFF)  {
        do  {
          SCON1&=~0X1;
          while ((SCON1&0X1)!=0X1);
        }
        while (SBUF1 != XON);
        SCON1&=~0X1;
      }
    }
    while ((SCON1&0X2)!=0X2);
    SCON1&=~0X2;
    SBUF1 = 0x0d;                         /* output CR  */
  }
  if ((SCON1&0X1)==0X1)  {
    if (SBUF1 == XOFF)  {
      do  {
        SCON1&=~0X1;
        while ((SCON1&0X1)!=0X1);
      }
      while (SBUF1 != XON);
      SCON1&=~0X1; 
    }
  }
  while ((SCON1&0X2)!=0X2);
  SCON1&=~0X2;
  return (SBUF1 = c);
}



#if 0         // comment out versions below

/*
 * putchar (basic version): expands '\n' into CR LF
 */
char putchar (char c)  {
  if (c == '\n')  {
    while ((SCON1&0X2)!=0X2);
    SCON1&=~0X2;
    SBUF1 = 0x0d;                         /* output CR  */
  }
  while ((SCON1&0X2)!=0X2);
  TI = 0;
  return (SBUF1 = c);
}


/*
 * putchar (mini version): outputs charcter only
 */
char putchar (char c)  {
  while ((SCON1&0X2)!=0X2);
  SCON1&=~0X2;
  return (SBUF1 = c);
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -