HAL_配置uart printf
在math.h中 加入
#include "stm32f4xx_hal.h"
#include "stdio.h"
用于支持printf 及 一些 HAL 定义的 数据结构
在uart.c 文件中加入如下代码,用于把printf输出到串口1
/* USER CODE BEGIN 0 */ int fputc(int c,FILE * f) { HAL_UART_Transmit(&huart1,(uint8_t *)&c,1,20); return c; } /* USER CODE END 0 */
注意一定要在 /* USER CODE BEGIN X */ 与 /* USER CODE END X */ 中间添加代码,不然重新用STM32CubeMX生成代码后就会被覆盖.
/** * 函数功能: 重定向c库函数printf到DEBUG_USARTx * 输入参数: 无 * 返 回 值: 无 * 说 明:无 */ 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; }
/** * 函数功能: 重定向c库函数printf到DEBUG_USARTx * 输入参数: 无 * 返 回 值: 无 * 说 明:无 */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;}