【记录】STM32 printf函数实现方法

来源:互联网 发布:js ie8 appendchild 编辑:程序博客网 时间:2024/05/29 06:35

概要

使用USART1,实现printf。printf是标准库函数,在使用的需要包含stdio.h头文件。在prinft内部最终调用fputc库函数,因此需要重写fputc库函数,将要输出的内容输出到串口上。

实现

#include "usart.h"#pragma import(__use_no_semihosting)struct __FILE{    int handle;    /* Whatever you require here. If the only file you are using is */     /* standard output using printf() for debugging, no file handling */     /* is required. */ };/* FILE is typedef’ d in stdio.h. */ FILE __stdout; _sys_exit(int x){    x = x;}//redefine fputc using USART1int fputc(int ch, FILE *f){    //status register, [6]transmission complete    while((USART1->SR & 0x40) == 0);    USART1->DR = (u8)ch;    return ch;}void uart_init(u32 pclk2, u32 bound){    //initialize usart1}

参考

1. STM32 Printf函数实现方法
2. 实现STM32的串口数据发送和printf函数重定向

0 0