Posted on 

嵌入式-printf重定向

半主机模式

半主机是作用于ARM目标的一种机制,可以将来自STM32单片机应用程序的输入与输出请求传送至运行仿真器的PC主机上。使用此机制可以启用C库中的函数,如printf()和scanf()等输入与输出函数,使用PC主机的屏幕和键盘。

  • 退出半主机模式后使用printf()函数通过串口打印数据时,需要定义串口的引脚,并重定义fputc函数。

    1
    2
    3
    4
    5
    6
    7
    8
    //重定义fputc函数 
    int fputc(int ch, FILE *f)
    {
    while((USART1->SR&0X40)==0);//循环发送,直到发送完毕
    USART1->DR = (u8) ch;
    return ch;
    }

MicroLIB

  • MicroLib 是一个高度优化的库,适用于用 C 编写的基于 ARM 的嵌入式应用程序。与 ARM 编译器工具链中包含的标准 C 库相比,MicroLib 提供了许多嵌入式系统所需的显着代码大小优势。