1.CubeMx 设置
按上面设置好,生成代码。注意串口引脚要和电路板一致!
2.测试串口和printf重写
生成代码后,用HAL_UART_Transmit()测试串口能否正常使用。
HAL_UART_Transmit(&huart1,(uint8_t*)"hello",5,100);
HAL_Delay(1000);
测试正常后,下面重写printf函数
注意先在keil里设置Ues MicroLIB,不然重写没用1
下面介绍2种方法:
第一种
在main.c中加#include “stdio.h”,然后在main()之前加入以下代码:
int fputc(int ch, FILE *f)
{
/* ·¢ËÍÒ»¸ö×Ö½ÚÊý¾Ýµ½´®¿ÚDEBUG_USART */
HAL_UART_Transmit(&UartHandle, (uint8_t *)&ch, 1, 1000);
return (ch);
}
第二种
在uart.c中加#include “stdio.h”,然后在uart.c最后加入以下代码:
#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__ */
PUTCHAR_PROTOTYPE
{
/* Place your implementation of fputc here */
/* ?????????????? */
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
这样就可以了。