智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 13671|回复: 33
打印 上一主题 下一主题

[咨询] 求助!野火K60库的串口printf问题

  [复制链接]

17

主题

426

帖子

0

精华

杰出人士

持之以恒

Rank: 12Rank: 12Rank: 12

积分
12759

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章

威望
8773
贡献
2380
兑换币
991
注册时间
2012-3-6
在线时间
803 小时
跳转到指定楼层
1#
发表于 2012-12-18 22:41:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天调程序的时候打算串口看一下数据,用了野火库的printf函数,发现调试助手毫无反应……于是找到了火哥的例程如下:
void  main(void)
{
    uart_init(UART1, 19200);                                          //初始化串口
    printf("串口发送实验\n\n");                                       //使用printf来发送
    printf("\t\t——野火kinetis开发板\n\n");
    while(1)
    {
        uart_putchar (UART1, 'F');                                    //发送一个字符'F'
        uart_sendN (UART1, "uart_sendN\n", 11);                       //发送11个字符
        uart_sendStr (UART1, "uart_str函数发送数据");                 //发送字符串
        printf("\n-------------野火kinetis开发板-------------\n\n");  //使用printf来发送
        uart_sendStr (UART1, "uart_str函数发送数据");
        time_delay_ms(500);                                           //延时
    }
}
调试发现只有printf不好使,其他函数都能正常输出,貌似不是设置的问题啊?求各位大神指教一二,小弟不胜感激!

59

主题

1029

帖子

0

精华

版主

有什么需帮助的?

Rank: 9Rank: 9Rank: 9

积分
15163

热心会员奖章论坛元老奖章优秀会员奖章在线王奖章

威望
11088
贡献
1415
兑换币
1728
注册时间
2011-12-18
在线时间
1330 小时
2#
发表于 2012-12-18 22:57:33 | 只看该作者
查看printf函数内部,看看是不是他有宏定义把函数体屏蔽了。如果还不行重新解压下他的工程包。
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
3#
发表于 2012-12-18 22:58:37 | 只看该作者
看教程,教程有写着的,我们的printf函数,通过宏定义来配置的。
k60_fire.h 下:
#define FIRE_PORT           UART3
#define FIRE_BAUD           19200

即printf是通过串口3来输出,bootloader的时候就初始化。
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
4#
发表于 2012-12-18 23:04:05 | 只看该作者
教程中有专门的讲printf函数的实现原理,以及重定向,重定向可以把 printf 输出到 LCD 等
当然,设置管脚的那部分也是有讲的:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

17

主题

426

帖子

0

精华

杰出人士

持之以恒

Rank: 12Rank: 12Rank: 12

积分
12759

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章

威望
8773
贡献
2380
兑换币
991
注册时间
2012-3-6
在线时间
803 小时
5#
 楼主| 发表于 2012-12-19 10:23:22 | 只看该作者
野火 发表于 2012-12-18 23:04
教程中有专门的讲printf函数的实现原理,以及重定向,重定向可以把 printf 输出到 LCD 等
当然,设置管脚的 ...

谢谢火哥!问题解决啦!
回复 支持 反对

使用道具 举报

17

主题

426

帖子

0

精华

杰出人士

持之以恒

Rank: 12Rank: 12Rank: 12

积分
12759

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章

威望
8773
贡献
2380
兑换币
991
注册时间
2012-3-6
在线时间
803 小时
6#
 楼主| 发表于 2012-12-19 10:24:08 | 只看该作者
洋葱圈 发表于 2012-12-18 22:57
查看printf函数内部,看看是不是他有宏定义把函数体屏蔽了。如果还不行重新解压下他的工程包。

谢大神指点!果然是一个宏定义错了
回复 支持 反对

使用道具 举报

19

主题

167

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3143
威望
1385
贡献
790
兑换币
394
注册时间
2012-5-12
在线时间
484 小时
7#
发表于 2012-12-19 20:41:03 | 只看该作者
野火 发表于 2012-12-18 22:58
看教程,教程有写着的,我们的printf函数,通过宏定义来配置的。
k60_fire.h 下:
#define FIRE_PORT     ...

我了个檫原来是这样。。。怪不得一直弄不出来
回复 支持 反对

使用道具 举报

10

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
944
威望
429
贡献
337
兑换币
219
注册时间
2012-11-12
在线时间
89 小时
8#
发表于 2013-3-10 19:29:17 | 只看该作者
野火 发表于 2012-12-18 22:58
看教程,教程有写着的,我们的printf函数,通过宏定义来配置的。
k60_fire.h 下:
#define FIRE_PORT     ...

终于找到原因了。。。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
165
威望
119
贡献
38
兑换币
18
注册时间
2012-6-19
在线时间
4 小时
毕业学校
桂电
9#
发表于 2013-3-22 21:54:52 | 只看该作者
同样的问题在此得到解决,谢谢啊!
回复 支持 反对

使用道具 举报

2

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
331
威望
227
贡献
84
兑换币
44
注册时间
2012-1-7
在线时间
10 小时
10#
发表于 2013-3-27 17:36:47 | 只看该作者
野火 发表于 2012-12-18 22:58
看教程,教程有写着的,我们的printf函数,通过宏定义来配置的。
k60_fire.h 下:
#define FIRE_PORT     ...

就是这个问题,野火的源代码主函数定义的是UART1,宏定义却是UART3,看来代码还是要好好研究一下。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-7 21:28 , Processed in 0.072990 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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