单片机/MCU论坛
直播中

回头太晚

9年用户 855经验值
擅长:可编程逻辑 电源/新能源
私信 关注

TLE9854 printf函数无法输出是怎么回事?

TLE9854 的串口能正常输出,现在想配置成printf,使能了STDOUT和STDIN,选择了MicroLIB,可是没法输出,怀疑是程序里这个函数没被调用,这个函数在哪里调用的?
void ttywrch(int ch)
{
stdout_putchar(ch);
}
我把sint32 stdout_putchar(sint32 Char)注释,改为
int fputc(int ch, FILE *f),printf可以用,这是怎么回事,是哪里我没配置吗
{
}

                                                                                                                                                                                                                                                                                                                                                                                                        
                                                        

回帖(1)

李鑫

2024-2-4 16:12:51
根据您的描述,可能是以下问题导致printf函数无法正常输出:

1. 没有正确调用printf函数:确保您在代码中正确调用了printf函数来输出内容,例如:printf("Hello Worldn");

2. printf函数的输出被重定向到了其他地方:在一些特殊的嵌入式系统中,printf函数的输出可能被重定向到串口或者其他设备。确保您的输出设备正确配置,并且printf函数的输出被正确重定向到了预期的地方。您可以查看相关的开发板或芯片文档以了解如何正确配置输出设备。

3. printf函数的流设置不正确:在使用MicroLIB时,确保您正确使用了MicroLIB提供的流设置函数来使能STDOUT和STDIN流,例如:finit(STDIN_FILENO); 和 finit(STDOUT_FILENO);。这样可以确保printf函数使用正确的输入和输出流。

4. 标准库的重定向函数未正确实现:在您的代码中,您注释掉了sint32 stdout_putchar(sint32 Char)函数,改为了int fputc(int ch, FILE *f)函数来实现输出。这种情况下,确保您正确实现了fputc函数,并且正确地将输出重定向到了期望的位置。

请注意,以上仅是一些可能的原因,具体原因可能因为您的具体环境、配置和代码的不同而有所差异。根据您的具体情况,请仔细检查和调试相关配置和代码,以确定问题所在。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分