#include
#define XON 0x11 /*串口流控制符 启动*/
#define XOFF 0x13 /*串口流控制符 中断*/
/*
* putchar (full version): expands '\n' into CR LF and handles /*完整版 每次发送数据都要检查sbuf是否有中断信号 */
* XON/XOFF (Ctrl+S/Ctrl+Q) protocol /* XON启动 XOFF中断 通信协议*/
*/
char putchar (char c) {
if (c == '\n') { /*判断是否是换行符的原因,是因为字符串的标准格式是末尾为\r(回车符)\n(换行符)这两个字符*/
if (RI) { /*判断接收标识符是否为1,若为1则说明SBUF接受到了信息*/
if (SBUF == XOFF) { /*判断SBUF中的信息是否为中断信号 是则执行以下程序*/
do {
RI = 0; /*将接收标识符置1 可以继续接收信息*/
while (!RI); /*判断是否接收到了信息,是则往下循环*/
}
while (SBUF != XON); /*判断接收的信息是否为启动信息,是则退出循环,不是继续循环*/
RI = 0; /*将接受标识符置1 可以继续接收信息*/
}
}