打印
[STM32F4]

StringOut 可用有效,而 printf无效。

[复制链接]
91|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
地瓜patch|  楼主 | 2025-5-30 21:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 地瓜patch 于 2025-5-30 21:52 编辑

在 STM32CubeIDE 上使用 stm32f407。在我的代码中,想用printf打印数据
#include <stdio.h>int fputc(int ch, FILE *f)
{
HAL_UART_Transmit ( & huart3 , (uint8_t *)&ch , 1 , 0xFFFF ) ;   
return ch ;
}
为了验证 UART 有效 - 用 2 种方法打印 Hello World。如下:
StringOut ( "Hello World with StringOut\n\r" ) ;
printf ( "Hello World with printf" ) ;
运行代码时,只会打印“Hello World with StringOut”。printf 函数未打印。没找到哪里的问题
以下完整的代码:
#include "main.h"
#include <stdio.h>
#define PUTCHAR_PROTOTYPE
i[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]nt fputc(int ch, FILE *f)
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]void StringOut ( char * s )
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]{   
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]HAL_UART_Transmit ( & huart3 , ( void * ) s , strlen ( s ) , 1000 ) ;
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]}
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]int main(void)
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]{
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]   HAL_Init();
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]    SystemClock_Config();
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]    MX_USART3_UART_Init();
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]     while (1)
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]   {
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]        StringOut ( "Hello World with StringOut\n\r" ) ; // Prints successfully
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]         printf ( "Hello World with printf" ) ; [color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]// Nothing happens. The code just proceeds ahead.
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]    }
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]}
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]PUTCHAR_PROTOTYPE
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]{
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]   HAL_UART_Transmit ( & huart3 , (uint8_t *)&ch , 1 , 0xFFFF ) ;
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]   return ch ;
[color=var(--darkreader-text-444444, #a19c95)][backcolor=var(--darkreader-background-ffffff, #141617)]}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

1590

主题

14171

帖子

28

粉丝