目录
一、STM32CubeMX配置串口配置好时钟后,选择你的串口,生成代码。
二、修改代码——按如图顺序进入到uart.c中,加入如下两条语句,你的huart是数字几,后面就修改成几。
三、增加代码——如图所示把如下代码添加在uart.c的后面。
一、STM32CubeMX配置串口
配置好时钟后,选择你的串口,生成代码。

二、修改代码——按如图顺序
进入到uart.c中,加入如下两条语句,你的huart是数字几,后面就修改成几。
串口1:
#include "stdio.h"
extern UART_HandleTypeDef huart1;
串口2:
#include "stdio.h"
extern UART_HandleTypeDef huart2;
三、增加代码——如图所示
把如下代码添加在uart.c的后面。
串口1:
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
return ch;
}
/**
* 函数功能: 重定向c库函数getchar,scanf到DEBUG_USARTx
* 输入参数: 无
* 返 回 值: 无
* 说 明:无
*/
int fgetc(FILE *f)
{
uint8_t ch = 0;
HAL_UART_Receive(&huart1, &ch, 1, 0xffff);
return ch;
}
串口2:
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xffff);
return ch;
}
/**
* 函数功能: 重定向c库函数getchar,scanf到DEBUG_USARTx
* 输入参数: 无
* 返 回 值: 无
* 说 明:无
*/
int fgetc(FILE *f)
{
uint8_t ch = 0;
HAL_UART_Receive(&huart2, &ch, 1, 0xffff);
return ch;
}
四、使用MicroLIB库
在keil中点击魔术棒,如下按钮 ,进入项目参数设置界面,在Target下勾选上Usb MicroLIB !!!实测发现不勾选会卡死在printf函数这里

1万+

被折叠的 条评论
为什么被折叠?



