STM32
直播中

张桂兰

7年用户 1318经验值
私信 关注
[问答]

请问一下STM32是如何使用printf函数去打印串口信息的

请问一下STM32是如何使用printf函数去打印串口信息的?

回帖(1)

李平

2021-12-1 15:46:51
STM32 使用printf打印串口信息
一、 uart.c



//使用对应的串口打印信息
#define PRINTF_UART USART2   


//加入以下代码,支持printf函数,而不需要选择use MicroLIB   
#if 1
#pragma import(__use_no_semihosting)   


//标准库需要的支持函数            
struct __FILE
{
    int handle;
};


FILE __stdout;     


//定义_sys_exit()避免使用半主机模式
_sys_exit(int x)
{
    x = x;
}


_ttywrch(int ch)
{
    ch=ch;
}


int fputc(int Data, FILE *f)
{   
    while(!USART_GetFlagStatus(PRINTF_UART,USART_FLAG_TXE));//USART_GetFlagStatus 得到发送状态位   //USART_FLAG_TXE: 发送寄存器,1:为空;2:忙状态
    USART_SendData(PRINTF_UART,Data);//发送一个字节


    return Data;//返回一个值
}
#endif


二、 TASK

__align(8) static   CPU_STK MEASURE_Stk[MEASURE_TASK_STK_SIZE]; //字对齐
三、 Options for target

如果有_ttywrch,Use MicroLib则不需要打钩
如果没有_ttywrch,Use MicroLib则需要打钩


举报

更多回帖

发帖
×
20
完善资料,
赚取积分