📄 printf.c
字号:
#include <bios/stdio.h>#include <bios/stdioint.h>#include <bios/timer.h>#include <stdarg.h>extern void ser_write(const char *buf, int nr);extern int ser_read(char *buf, int nr);extern int ser_stat(void);extern void clear_timer(int timer) ;extern void set_timer(int timer, int cs) ;extern int lcd_prints(char *, int);struct stdfn stdfn ={ ser_write, ser_read, ser_stat};int printf(const char *fmt, ...){ char buffer[256]; va_list ap; int len; va_start(ap, fmt); len = vsprintf(buffer, fmt, ap); va_end(ap); if (stdfn.write) stdfn.write(buffer, len); //lcd_prints(buffer, len); return len;}int getc(void){ char buffer[2]; clear_timer(KEY_TIMER); return (stdfn.read(buffer, 1) == 1) ? buffer[0] : -1;}int gets(char *s){ int cnt = 0; char c; while ((c = getc()) != CR) { if (c != BS) { cnt ++; *s ++ = c; printf("%c", c); } else { if (cnt > 0) { cnt --; *s -- = 0x0; printf("%c%c%c", c, ' ', c); } } } s = (char *)NULL; return cnt;}int getc_timed(int cs){ char buffer[2]; set_timer(KEY_TIMER, cs); return (stdfn.read(buffer, 1) == 1) ? buffer[0] : -1;}int putc(char buffer){ stdfn.write((char *)&buffer, 1); return 1;}int putchar(char buffer){ stdfn.write((char *)&buffer, 1); return 1;}int puts(char *str){ int cnt; char c; for (cnt = 0; str[cnt]; cnt ++) putc(str[cnt]); return cnt;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -