📄 putchar.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 + -