[AT32F407] AT32F407VG不能用printf输出

[复制链接]
 楼主| tototm 发表于 2025-4-6 16:38 | 显示全部楼层 |阅读模式
AT32F407VG不能用printf输出,麻烦帮我测试一下这个程序,刚接触这个芯片,例程可以正常输出,这个是用软件自动生成的工程,谢谢,不明白问题出在什么地方

at32f407vg.rar

3.73 MB, 下载次数: 5

muyichuan2012 发表于 2025-4-7 09:48 | 显示全部楼层
本帖最后由 muyichuan2012 于 2025-4-7 09:50 编辑

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

 楼主| tototm 发表于 2025-4-7 09:50 来自手机 | 显示全部楼层
谢谢
muyichuan2012 发表于 2025-4-7 09:56 | 显示全部楼层
AT START F407 接线图如下:
3086867f330b37bad7.jpg
TimeRiddle 发表于 2025-4-7 16:08 | 显示全部楼层
应该是自动生成的引脚和例程不一样吧
 楼主| tototm 发表于 2025-4-7 20:14 | 显示全部楼层
本帖最后由 tototm 于 2025-4-7 20:33 编辑
TimeRiddle 发表于 2025-4-7 16:08
应该是自动生成的引脚和例程不一样吧


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函数进行重定向,使其能够通过串口输出数据
pl202 发表于 2025-5-6 21:38 | 显示全部楼层
初始化USART并重定向stdout。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

350

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部