经过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了
|