打印
[开发工具]

printf()函数未定义问题调试

[复制链接]
1363|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 | 只看该作者
示例代码:
extern UART_HandleTypeDef huart2;   

int fputc(int ch, FILE *f)
{
  HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xffff);
  return ch;
}


int fgetc(FILE *f)
{
  uint8_t ch = 0;
  HAL_UART_Receive(&huart2, &ch, 1, 0xffff);
  return ch;
}

使用特权

评论回复
地板
paotangsan| | 2021-10-12 15:35 | 只看该作者
都可以向什么输出设备打印呢

使用特权

评论回复
5
renzheshengui| | 2021-10-12 15:37 | 只看该作者
是不是可以自己写一个呀

使用特权

评论回复
6
wakayi| | 2021-10-12 15:41 | 只看该作者
手动添加定义是吗

使用特权

评论回复
7
wowu| | 2021-10-12 16:27 | 只看该作者
为什么在这个环境中使用不了呢

使用特权

评论回复
8
xiaoqizi| | 2021-10-12 17:00 | 只看该作者
感觉这个是最基本的函数啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

92

主题

1059

帖子

0

粉丝