打印
[AT32F407]

AT32F407VG不能用printf输出

[复制链接]
1446|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tototm|  楼主 | 2025-4-6 16:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
AT32F407VG不能用printf输出,麻烦帮我测试一下这个程序,刚接触这个芯片,例程可以正常输出,这个是用软件自动生成的工程,谢谢,不明白问题出在什么地方

at32f407vg.rar

3.73 MB

使用特权

评论回复
沙发
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 接线图如下:

3086867f330b37bad7.jpg (5.97 MB )

3086867f330b37bad7.jpg

使用特权

评论回复
5
TimeRiddle| | 2025-4-7 16:08 | 只看该作者
应该是自动生成的引脚和例程不一样吧

使用特权

评论回复
6
tototm|  楼主 | 2025-4-7 20:14 | 只看该作者
本帖最后由 tototm 于 2025-4-7 20:33 编辑
TimeRiddle 发表于 2025-4-7 16:08
应该是自动生成的引脚和例程不一样吧


使用特权

评论回复
7
丙丁先生| | 2025-4-8 08:33 | 只看该作者
这个板子怎么申请?

使用特权

评论回复
8
elsaflower| | 2025-5-3 22:03 | 只看该作者
串口相关的引脚已经正确配置为复用功能模式

使用特权

评论回复
9
vivilyly| | 2025-5-3 23:04 | 只看该作者
使用fputc重定向              

使用特权

评论回复
10
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;
}

使用特权

评论回复
11
belindagraham| | 2025-5-4 05:37 | 只看该作者
串口线与开发板和电脑之间的连接稳固,没有松动或接触不良的情况。

使用特权

评论回复
12
uptown| | 2025-5-4 19:25 | 只看该作者
请检查串口是否真的被初始化并且正在发送数据。你可以使用逻辑分析仪或者示波器观察TX引脚上的信号。

使用特权

评论回复
13
jackcat| | 2025-5-4 22:25 | 只看该作者
编译器的目标设置与所使用的 AT32F407VG 芯片型号匹配,包括芯片的架构、指令集等设置。不匹配的设置可能导致生成的代码在芯片上无法正确运行。

使用特权

评论回复
14
vivilyly| | 2025-5-6 09:07 | 只看该作者
正确配置了一个或多个串口(例如USART1),以便能够发送数据出去。

使用特权

评论回复
15
backlugin| | 2025-5-6 10:50 | 只看该作者
一般需要在代码中定义fputc函数,将printf函数的输出重定向到串口的发送函数。

使用特权

评论回复
16
jtracy3| | 2025-5-6 12:38 | 只看该作者
可以尝试更换一根串口线或使用其他串口进行测试

使用特权

评论回复
17
burgessmaggie| | 2025-5-6 14:24 | 只看该作者
可以通过重写int __io_putchar(int ch)或int fputc(int ch, FILE *f)函数实现。

使用特权

评论回复
18
claretttt| | 2025-5-6 16:21 | 只看该作者
检查串口的波特率、数据位、停止位、校验位等参数设置是否正确

使用特权

评论回复
19
phoenixwhite| | 2025-5-6 18:12 | 只看该作者
编写简单的测试代码,尝试发送一些基本的字符串,以确认串口是否工作正常。

使用特权

评论回复
20
bartonalfred| | 2025-5-6 19:56 | 只看该作者
需要对printf函数进行重定向,使其能够通过串口输出数据

使用特权

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

本版积分规则

9

主题

328

帖子

3

粉丝