zzuzph 发表于 2018-5-1 11:41:50

关于printf在串口助手上无法显示的问题

做DW1000测距,硬件在线调试没问题了,可以完成测距,但是测距的结果通过串口在串口助手上显示不出来,不知道是哪里出了问题
求各位大神看一下
电路部分


程序部分


时钟设置等



toofree 发表于 2018-5-2 00:08:24

本帖最后由 toofree 于 2018-5-2 00:15 编辑

你用的哪款片子。
一般PA9、PA10才是USART1,如果要用PB6、PB7作为USART1的话,需要remap一下。我眼拙,没找到你remap的地址。






zzuzph 发表于 2018-5-1 11:48:26

我用的USB转TTL把板子连到电脑上

wenyangzeng 发表于 2018-5-1 13:38:19

printf需要重定向:
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif

PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}


zzuzph 发表于 2018-5-1 15:59:31

wenyangzeng 发表于 2018-5-1 13:38
printf需要重定向:

请问是直接将这段代码复制到主函数里吗?

zzuzph 发表于 2018-5-1 16:07:10

wenyangzeng 发表于 2018-5-1 13:38
printf需要重定向:

我发现我代码里已经有了
int fputc(int ch, FILE *f)

{

USART_SendData(USART1, (unsigned char) ch);// USART1 ???? USART2 ?

while (!(USART1->SR & USART_FLAG_TXE));

return (ch);


}
还需要重定向吗

wenyangzeng 发表于 2018-5-1 16:43:36

zzuzph 发表于 2018-5-1 16:07
我发现我代码里已经有了
int fputc(int ch, FILE *f)




wenyangzeng 发表于 2018-5-1 16:44:52

zzuzph 发表于 2018-5-1 16:07
我发现我代码里已经有了
int fputc(int ch, FILE *f)



共有2段代码

zzuzph 发表于 2018-5-1 17:17:16

wenyangzeng 发表于 2018-5-1 16:43


这个我选了

zzuzph 发表于 2018-5-1 17:18:12

wenyangzeng 发表于 2018-5-1 16:44
共有2段代码

复制进去发现全是警告 HAL_UART_Transmit有点问题

wenyangzeng 发表于 2018-5-1 19:34:01

zzuzph 发表于 2018-5-1 15:59
请问是直接将这段代码复制到主函数里吗?

这是举例HAL库的代码,如果你是标准固件库,则要复制标准固件库的代码。这在ST官网可以找到的。
页: [1] 2
查看完整版本: 关于printf在串口助手上无法显示的问题