OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6133|回复: 4

printf怎么和uart联系在一起的?

[复制链接]

3

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2019-11-3
在线时间
37 小时
发表于 2021-1-9 16:23:39 | 显示全部楼层 |阅读模式
10金钱
printf怎么和uart联系在一起的?
在裸机驱动中,只是移植了uboot中的stdio文件夹,但是printf怎么和uart的发送接收函数对应起来的,自己写的uart发送接收函数又不是标准名称

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

3281

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8207
金钱
8207
注册时间
2020-5-11
在线时间
3702 小时
发表于 2021-1-9 17:41:05 | 显示全部楼层
专治疑难杂症
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3329
金钱
3329
注册时间
2011-11-10
在线时间
207 小时
发表于 2021-1-9 19:12:02 | 显示全部楼层
/*重定义Printf函数到串口3*/
int fputc(int ch,FILE *f)
{
        HAL_UART_Transmit(&huart3,(uint8_t *)&ch,1,0xFFFF);
    return ch;
}

把上面这个函数添加进去就行了。不管你自己写的串口函数名称是啥。也只是对应串口发送,不是收发都用。
回复

使用道具 举报

3

主题

312

帖子

0

精华

高级会员

Rank: 4

积分
907
金钱
907
注册时间
2011-10-19
在线时间
196 小时
发表于 2021-1-9 19:57:36 | 显示全部楼层
GCC编译器的C库使用一系列的系统调(函数)用来连接库函数(printf等)和低层驱动。
这些系统调用称为system call,包含_write(printf的低层调用)、_read(scanf的低层调用)、_open、_close、_exit、_kill等。
回复

使用道具 举报

3

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2019-11-3
在线时间
37 小时
 楼主| 发表于 2021-1-20 11:22:28 | 显示全部楼层
c2007s 发表于 2021-1-9 19:12
/*重定义Printf函数到串口3*/
int fputc(int ch,FILE *f)
{

你的意思是说printf函数没有调用我自己写的串口函数,而是用他们自己的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 22:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表