这个很简单啊,你想,你肯定是先把程序烧进去,程序运行,然后才开超级终端。你不放到while循环里,你还没打开超级终端他就发完了,对吧!!!望采纳!!!
int fputc(int ch, FILE *f)这函数涉及到文件指针了,但函数主体却是对串口的操作,是不是你搞错了,应该是putc()函数?
应该是串口启动速度较慢导致的,我以前单步运行试过进入串口中断的,一般会过几条程序才跳进中断。你可以把while去掉,然后用一个delay延时代替。
不加主死循环程序都跑飞了。