打印
[技术支持]

串口实现printf函数

[复制链接]
2854|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
biechedan|  楼主 | 2024-4-23 18:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
可以直接使用C标准库函数,其中printf函数没有完全实现,预留了一个后门fputc函数,可以通过实现fputc往串口打印从而实现printf的功能。

1.fputc格式:

int fputc(int ch,FILE *F)

{     //...... }
//stm32开发板上运行程序,如果主机运行了调试器,程序就会使用主机的输入输出设备//这是方式叫半主机模式,printf如果要通过串口打印,必须关闭半主机模式

#pragma import(__use_no_semihosting)

struct __FILE{     int handle; };

FILE __stdout;
//定义_sys_exit函数避免使用半主机模式

void _sys_exit(int x) {     x = x; } //重定义fputc
int fputc(int ch,FILE *F)
{     //发送     
      USART_SendData(USART1,ch

);


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

294

主题

8012

帖子

12

粉丝