经过2天不断的尝试,问题解决了。
一定要重定向fputc,putc,putchar,fputs,我之前没有重定向fputs,就导致了输出数据不完整的问题
#include <stdio.h>
#include <string.h>
int fputc(int _c, register FILE *_fp)
{
while (SciaRegs.SCICTL2.bit.TXEMPTY == 0);
SciaRegs.SCITXBUF = _c;
return _c;
}
int putc(int _c, register FILE *_fp)
{
while (SciaRegs.SCICTL2.bit.TXEMPTY == 0);
SciaRegs.SCITXBUF = _c;
return _c;
}
int putchar(int data)
{
while (SciaRegs.SCICTL2.bit.TXRDY == 0);
SciaRegs.SCITXBUF=data;
return data;
}
int fputs(const char *_ptr, register FILE *_fp)
{
unsigned int i, len;
len = strlen(_ptr);
for(i=0 ; i<len ; i++)
{
while (SciaRegs.SCICTL2.bit.TXEMPTY == 0);
SciaRegs.SCITXBUF = (uint8_t) _ptr[i];
}
return len;
}
//之前没有重定向fputs函数,造成了问题,添加了之后,就OK了
|