stm32 cube max+keil5的环境怎么printf重定向

main.c

复制代码
#include <stdio.h>
#include "stm32f1xx.h" 


int fputc(int ch, FILE *f)
{
    /* 1. 先进来就翻转灯------如果灯不闪,说明 printf 没链到这个函数 */
    //HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_14);

    /* 2. 限时等待,别让任务卡死 */
    uint32_t tick = HAL_GetTick();
    while (!(USART1->SR & USART_SR_TXE))
    {
        if (HAL_GetTick() - tick > 10)     // 10 ms 等不到就放弃
        {
            //HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_15);  // 再闪一次灯做"超时"提示
            return ch;                           // 直接返回,别让任务死
        }
    }

    USART1->DR = ch;
    return ch;
}

main.h

复制代码
int fputc(int ch, FILE *f);

就可以随便找个地方调用了printf("abc");

相关推荐
BackCatK Chen8 小时前
第 8 篇:TMC2240 电机正反转实现|DIR 引脚控制 + 代码优化(稳定不抖动)
stm32·单片机·嵌入式硬件·保姆级教程·电机正反转·tmc2240·dir引脚控制
星马梦缘9 小时前
EDA彩灯电路绘制
单片机·嵌入式硬件·物联网·pcb·eda·嘉立创
Forsete11 小时前
LINUX驱动开发#9——定时器
linux·驱动开发·单片机
Hello_Embed13 小时前
libmodbus 移植 STM32(USB 串口后端篇)
笔记·stm32·单片机·嵌入式·freertos·libmodbus
VekiSon14 小时前
Linux内核驱动——杂项设备驱动与内核模块编译
linux·c语言·arm开发·嵌入式硬件
来自晴朗的明天16 小时前
14、光耦隔离电路(EL3H7)
单片机·嵌入式硬件·硬件工程
G***技16 小时前
杰和IB3-272:以低功耗高性能打造新一代工业智能交互核心
单片机·嵌入式硬件·物联网
czhaii17 小时前
STC AI8052U单片机特点
单片机
MAR-Sky17 小时前
keil5中数据的不同定义和单片机(以stc8为例)里的对应关系(idata,xdata,data,code)
单片机·嵌入式硬件
项目題供诗19 小时前
51单片机入门(八)
单片机·嵌入式硬件·51单片机