*@briefprintf 重定向 * @param c */ void putchar(char c){ SBUF = c;while(!TI);TI = 0;...
putchar:向标准输出流写一个字符 puts:向标准输出流写一个字符串 ... 2 printf的使用 2.1 常用输出控制符 2.2 常用转义字符 3 printf函数输出流程 printf重定向:用户根据最终输出的硬件重新定义fputc()函数 4 printf函数支持 4.1 避免半主机模式 半主机模式:用于ARM目标的一种机制;就是通过仿真器实现开发板在电脑...
//重定向putchar函数 char putchar(char c){ UART_Send(UART1,c);return c;} 对于波特率HC89S003...
打开51工程文件时keil设置界面: 而从keil的帮助文档里可以知道,printf 也是基于putchar实现的,所以本次重新实现putchar,就可以实现printf的重定向了 至于重定向的方法网上有很多,但为什么可以重定向,就比较少文章介绍,这里看到有一篇文章写的不错:https://zhuanlan.zhihu.com/p/133460085 参考资料: 《STC15单片机-串...
通过重写putchar函数可以简单地实现printf重定向 。 下面是一个示例: /** * @brief printf 重定向 * @param c */ void putchar(char c){ SBUF = c; while(!TI); TI = 0; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 调用方法: main.c
而重新实现printf比较麻烦,一般不可取,所以我们找到了它的“儿子”,就是基本字符输入输出函数,如putchar,_write等,只负责字符的读写,不管其具体格式化过程。 三、重定向printf的方法 本文是基于HAL库和STM32CubeIDE来实现重定向printf的,基于STD库和MDK平台可以参考别人的文章,链接如下: mculover666:【STM32Cube_09...
进行C/C++开发的时候我们都会需要打印调试信息,打印调试信息时我们习惯使用printf函数,但是在Keil C51环境下,由于我们的程序是下载到单片机里,使用printf函数时不能直接打印到串口上,这个时候就需要我们对printf函数输出重定向。 重定向 重定向printf很简单,我们知道,printf函数是调用putchar实现字符数据传送的。我们只要重...
C51 重定向 printf 函数的输出到串口,需要改写 putchar 函数,伪代码如下: 登录后复制charputchar(charch) { SBUF0= ch; while( !(SCON0& (1<<1))); SCON0&=~(1<<1); return0; } 使用printf 函数前,需要包含 51单片机重定向 printf 函数后,如果直接像 PC机或者是 32位单片机那样使用 %d 占位符打...
重定向 重定向printf很简单,我们知道,printf函数是调⽤putchar实现字符数据传送的。我们只要重写putchar函数,就可以对printf进输出重定向 代码清单 下⾯是⾃⼰在Keil 5环境下,使⽤单⽚机STC89C52/52RCprintf重定向功能的代码清单 #include <reg52.h> #include <stdio.h> #define uint unsigned int #...
之前只需要重写一个__io_putchar函数就能运行,我猜是因为stdio.h里面的代码变了。 /* USER CODE BEGIN 0 */ #include "stdio.h" // 重定向print start int __io_putchar(int ch) { //具体哪个串口可以更改USART1为其它串口 while ((USART1->SR & 0X40) == 0); //循环发送,直到发送完毕 ...