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");

相关推荐
爱潜水的小L8 小时前
自学嵌入式day48,温度传感器
单片机·嵌入式硬件
电子绿洲9 小时前
什么是红外接收头?红外遥控系统核心元件基础知识解析
单片机·嵌入式硬件·智能硬件·硬件电路·硬件设计
乡野码圣9 小时前
【RK3588 Android12】开发效率提升技巧
android·嵌入式硬件
蓁蓁啊10 小时前
GCC 头文件搜索路径:-I vs -idirafter 深度解析
java·前端·javascript·嵌入式硬件·物联网
YouEmbedded11 小时前
解码STM32定时器:原理、配置与实战
stm32·定时器·pwm·sg90舵机
Xx香菜11 小时前
单片机—4
单片机·嵌入式硬件
VekiSon11 小时前
51单片机——GPIO、按键、中断、定时器与PWM
单片机·嵌入式硬件·51单片机
纳祥科技11 小时前
NX3302,3进1出HDMI/DVI视频切换器芯片,兼容LT8631UX
单片机·嵌入式硬件·音视频
析木不会编程11 小时前
51单片机程序下载逻辑
单片机·嵌入式硬件·51单片机
羊小猪~~11 小时前
【QT】-- QT基础类
开发语言·c++·后端·stm32·单片机·qt