IAR中添加printf支持,以STM32为例
1.
//重定向C库函数printf到USART1
int fputc(int ch, FILE *f)
{
while((USART1->SR & USART_FLAG_TXE) != USART_FLAG_TXE);
USART1->DR = ch;
return (ch);
}
2.项目Options->C/C++ Complier->Preprocessor->Defined symbols添加:
_DLIB_FILE_DESCRIPTOR
(用于支持FILE类型的宏定义)
3.项目Options->General Options->Library Configuration->Library中先FULL,获取完整C库支持
4.头文件包含:
#include <stdio.h>
即可正常使用printf
常用的输出控制符主要有以下几个:
控制符 说明
%d 按十进制整型数据的实际长度输出。
%ld 输出长整型数据。
%md m 为指定的输出字段的宽度。如果数据的位数小于 m,则左端补以空格。
%u 输出无符号整型(unsigned)。
%c 用来输出一个字符。
%f 用来输出实数,包括单精度和双精度,以小数形式输出。
%.mf 输出实数时小数点后保留 m 位,注意 m 前面有个点。
%o 以八进制整数形式输出。
%s 用来输出字符串。
%x 以十六进制形式输出整数