[开发工具] printf()函数未定义问题调试

[复制链接]
1609|7
 楼主| 梅花香自123 发表于 2021-9-28 22:41 | 显示全部楼层 |阅读模式
问题描述:
一般C语言中使用printf()函数时,包含#include "stdio.h"即可使用,但在Keil(HAL库)开发环境中使用不了。
问题分析:
未定义printf()使用的串口
 楼主| 梅花香自123 发表于 2021-9-28 22:43 | 显示全部楼层
解决方案:
在HAL库stm32xxxx_hal.c函数中,对输出串口进行定义与配置。
 楼主| 梅花香自123 发表于 2021-9-28 22:46 | 显示全部楼层
示例代码:
  1. extern UART_HandleTypeDef huart2;   

  2. int fputc(int ch, FILE *f)
  3. {
  4.   HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xffff);
  5.   return ch;
  6. }


  7. int fgetc(FILE *f)
  8. {
  9.   uint8_t ch = 0;
  10.   HAL_UART_Receive(&huart2, &ch, 1, 0xffff);
  11.   return ch;
  12. }
paotangsan 发表于 2021-10-12 15:35 | 显示全部楼层
都可以向什么输出设备打印呢
renzheshengui 发表于 2021-10-12 15:37 | 显示全部楼层
是不是可以自己写一个呀
wakayi 发表于 2021-10-12 15:41 | 显示全部楼层
手动添加定义是吗
wowu 发表于 2021-10-12 16:27 | 显示全部楼层
为什么在这个环境中使用不了呢
xiaoqizi 发表于 2021-10-12 17:00 | 显示全部楼层
感觉这个是最基本的函数啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

102

主题

1216

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部