tototm 发表于 2025-4-6 16:38

AT32F407VG不能用printf输出

AT32F407VG不能用printf输出,麻烦帮我测试一下这个程序,刚接触这个芯片,例程可以正常输出,这个是用软件自动生成的工程,谢谢,不明白问题出在什么地方

muyichuan2012 发表于 2025-4-7 09:48

本帖最后由 muyichuan2012 于 2025-4-7 09:50 编辑

请勿重复发帖。我刚有测试你代码,printf函数是正常输出的。请仔细检查连线。
注意:如果你使用的AT START F407,请确保连线只需要接一个USB线即可调试/下载/打印。
如下图


tototm 发表于 2025-4-7 09:50

谢谢

muyichuan2012 发表于 2025-4-7 09:56

AT START F407 接线图如下:

TimeRiddle 发表于 2025-4-7 16:08

应该是自动生成的引脚和例程不一样吧

tototm 发表于 2025-4-7 20:14

本帖最后由 tototm 于 2025-4-7 20:33 编辑

TimeRiddle 发表于 2025-4-7 16:08
应该是自动生成的引脚和例程不一样吧

丙丁先生 发表于 2025-4-8 08:33

这个板子怎么申请?

elsaflower 发表于 2025-5-3 22:03

串口相关的引脚已经正确配置为复用功能模式

vivilyly 发表于 2025-5-3 23:04

使用fputc重定向            

mnynt121 发表于 2025-5-4 00:37

#include <stdio.h>
#include "at32f407.h"

// 重定向printf函数到串口输出
int fputc(int ch, FILE *f)
{
    // 等待串口发送缓冲区为空
    while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
    // 发送字符
    USART_SendData(USART1, (uint8_t) ch);
    return ch;
}

belindagraham 发表于 2025-5-4 05:37

串口线与开发板和电脑之间的连接稳固,没有松动或接触不良的情况。

uptown 发表于 2025-5-4 19:25

请检查串口是否真的被初始化并且正在发送数据。你可以使用逻辑分析仪或者示波器观察TX引脚上的信号。

jackcat 发表于 2025-5-4 22:25

编译器的目标设置与所使用的 AT32F407VG 芯片型号匹配,包括芯片的架构、指令集等设置。不匹配的设置可能导致生成的代码在芯片上无法正确运行。

vivilyly 发表于 2025-5-6 09:07

正确配置了一个或多个串口(例如USART1),以便能够发送数据出去。

backlugin 发表于 2025-5-6 10:50

一般需要在代码中定义fputc函数,将printf函数的输出重定向到串口的发送函数。

jtracy3 发表于 2025-5-6 12:38

可以尝试更换一根串口线或使用其他串口进行测试

burgessmaggie 发表于 2025-5-6 14:24

可以通过重写int __io_putchar(int ch)或int fputc(int ch, FILE *f)函数实现。

claretttt 发表于 2025-5-6 16:21

检查串口的波特率、数据位、停止位、校验位等参数设置是否正确

phoenixwhite 发表于 2025-5-6 18:12

编写简单的测试代码,尝试发送一些基本的字符串,以确认串口是否工作正常。

bartonalfred 发表于 2025-5-6 19:56

需要对printf函数进行重定向,使其能够通过串口输出数据
页: [1] 2
查看完整版本: AT32F407VG不能用printf输出