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

相关推荐
wuyk5556 小时前
第2章:六步换相原理全解+STM32工程实战
c语言·开发语言·stm32·单片机·嵌入式硬件
小僧景贤10 小时前
单片机全方位调试实战指南:串口/RTT/逻辑分析仪/示波器/内核排错分层避坑教程
单片机·嵌入式硬件·物联网
2401_8275012814 小时前
【无标题】
arm开发·嵌入式硬件
LeoZY_14 小时前
LinkScope 使用笔记:基于 OpenOCD 的通用硬件芯片调试助手
笔记·单片机·嵌入式硬件·开源软件
星空真迷人16 小时前
嵌入式鸿蒙并非精简版,核心究竟是什么?
stm32·单片机·嵌入式硬件·物联网·华为·harmonyos·iot
iCxhust16 小时前
8088单板机VScode集成开发环境使用方法二(汇编版)
汇编·单片机·微机原理·8088单板机
hongmai66688816 小时前
GK7205V300芯片深度解析:H.265低功耗视觉主控,助力安防监控高效选型
arm开发·嵌入式硬件·物联网·智能家居·h.265·risc-v
m0_4666077017 小时前
只用三步使用MCSDK6生成电机控制工程
stm32·电机控制
2301_8014349818 小时前
STM32F407移植TinyUSB
stm32·单片机·嵌入式硬件
Dlrb121118 小时前
Linux驱动---Linux 中断系统及其上与下半部的介绍与阻塞IO实现按键检测
linux·嵌入式硬件·imx6ull·中断·阻塞io