关于STM32串口用printf()的问题,现在我只想用printf()这个函数用USART1输一段文字到超级终端!
#definePUTCHAR_PROTOTYPEint__io_putchar(intch)#else#definePUTCHAR_PROTOTYPEintfputc(i...
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
USART_SendData(USART1, (uint8_t) ch);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
{}
return ch;
}
网上都说用了这个函数之后就可以用 printf()直接输出数据到超级终端了,但是我怎么用都不行?求解。希望有时间的人能写个详细点的STM32的USART1的串口输出程序,我只要能用printf()输出一段文字到超级终端! 展开
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
USART_SendData(USART1, (uint8_t) ch);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
{}
return ch;
}
网上都说用了这个函数之后就可以用 printf()直接输出数据到超级终端了,但是我怎么用都不行?求解。希望有时间的人能写个详细点的STM32的USART1的串口输出程序,我只要能用printf()输出一段文字到超级终端! 展开
展开全部
#ifdef __GNUC__
/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
set to 'Yes') calls __io_putchar() */
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
完整应该是这样,,,楼主的少了#ifdef __GNUC__ 如果不定义GNUC则默认使用#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
不知道楼主用的是什么开发环境,,,
如果用MDK而且 就不用定义GNUC,或者只保留#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
函数fputc()在stdio.h中有定义,当然工程要包括stdio.h才能用printf()
/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
set to 'Yes') calls __io_putchar() */
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
完整应该是这样,,,楼主的少了#ifdef __GNUC__ 如果不定义GNUC则默认使用#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
不知道楼主用的是什么开发环境,,,
如果用MDK而且 就不用定义GNUC,或者只保留#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
函数fputc()在stdio.h中有定义,当然工程要包括stdio.h才能用printf()
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我没用过STM32这款单片机
你的这个问题吧 其实超级终端和串口助手差不多 只不过超级终端也有网络服务,
你就像使用串口助手一样 就行了 主要就是那几项 波特率 无奇偶校验 一个停止位
但是你要确定你的串口 是否真的发出了数据 可以用示波器测一下 如果有 高低电平的那种波形的话就死有数据发出来了 程序上的就帮不了你了 基本就是看寄存器 设置
希望能够帮到你了
你的这个问题吧 其实超级终端和串口助手差不多 只不过超级终端也有网络服务,
你就像使用串口助手一样 就行了 主要就是那几项 波特率 无奇偶校验 一个停止位
但是你要确定你的串口 是否真的发出了数据 可以用示波器测一下 如果有 高低电平的那种波形的话就死有数据发出来了 程序上的就帮不了你了 基本就是看寄存器 设置
希望能够帮到你了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询