【嵌入式学习笔记】---- printf重定向

1 stdio.h所包含的常用函数

  • printf:打印已经格式化字符串到标准输出流
  • scanf:从标准输出流读取指定格式的数据
  • putchar:向标准输出流写一个字符
  • puts:向标准输出流写一个字符串
  • ...

2 printf的使用

2.1 常用输出控制符

image

2.2 常用转义字符

image

3 printf函数输出流程

image
printf重定向:用户根据最终输出的硬件重新定义fputc()函数

4 printf函数支持

4.1 避免半主机模式

半主机模式:用于ARM目标的一种机制;就是通过仿真器实现开发板在电脑上的输入输出【一般情况下,不使用该模式

4.1.1 方法一:通过微库法避免半主机模式

进入keil的魔术棒界面,在Target设置里勾选Use MicroLIB
image

4.1.2 方法二:通过代码法避免半主机模式

(挖个坑,后面补回来)

4.2 实现fputc函数

即对函数进行重定向操作

#include "stdio.h"
 
//重定向scanf
int fgetc(FILE *f)
{
  uint8_t ch=0;
  HAL_UART_Receive(&huart2,&ch,1,0xffff);
  return ch;
}
 
//重定向printf
int fputc(int ch,FILE *f)
{
  uint8_t temp[1]={ch};
  HAL_UART_Transmit(&huart2,temp,1,2);
  return ch;
}
posted @ 2024-01-11 17:13  晚风也温柔  阅读(69)  评论(0编辑  收藏  举报