KEIL GNU99下printf 重定义问题求助
[复制链接]
keil5.35
选择ARM COMPILER 6
选择GNU99
在网上找了一些文章,说到 要把 int fputc(int ch, FILE *f)替换成 int _write(int fd, char *ptr, int len),但是现在有一些小问题,就是编译后是不会报错的,但是程序没有运行,仿真的时候点run,会停顿在 0x08001CE8 BEAB BKPT 0xAB,多点几次run就会运行起来,并且打印出来指定的数据。求大佬指点 GNU99下串口重定义还有哪些需要添加的。
int _write(int fd, char *ptr, int len)
{
int i = 0;
/*
* write "len" of char from "ptr" to file id "fd"
* Return number of char written.
*
* Only work for STDOUT, STDIN, and STDERR
*/
if (fd > 2)
{
return -1;
}
while (*ptr && (i < len))
{
usart_send_blocking(USART1, *ptr);
if (*ptr == '\n')
{
usart_send_blocking(USART1, '\r');
}
i++;
ptr++;
}
return i;
}
|