STM32初识,USART\printf例程工作不正常问题请教

[复制链接]
6806|10
 楼主| re张风 发表于 2010-9-23 17:03 | 显示全部楼层 |阅读模式
刚接触STM32F103,GPIO例子已正常运行了,但是USART\printf例子不能正常运行,在板子上没有任何反应。就连运行开始时的那段字符都没有输出来,找了半天,也没有找出原因,不知道自己在被圈在什么地方了,特跑来请教。可下载的ZIP文件就是我编译通过但不能运行的工程文件,那位同仁有空帮试试。
Printf.zip (42.6 KB, 下载次数: 180)
我用的是keil4进行编译的,例子用的是3.0固件中的例子,所以在工程中重新设置一下链接库文件的路径,应该就没有编译上的问题。
bruceleeIKA 发表于 2010-9-23 19:33 | 显示全部楼层
请看截图,在Target Option中的Target选项中,将Use microLIB勾上
printfQ.JPG
 楼主| re张风 发表于 2010-9-23 19:55 | 显示全部楼层
加上就可以了。这是什么作用的呢?在说明里没有说明,我弄了一天,还不如你这一提示。能不能再详说一下这是为什么呢?谢谢!
bruceleeIKA 发表于 2010-9-23 20:07 | 显示全部楼层
microlib提供一个有限的stdio子系统,它仅支持未缓冲的stdin,stdout和stderr.这样即可使用printf()来显示应用程序中的诊断消息。
其实,完全可以自己写串口发送函数,不用printf,这样也无需添加这个了。
 楼主| re张风 发表于 2010-9-23 20:08 | 显示全部楼层
另外,我重新定义了IROM1的起始地址为0x8002000,通过软件仿真发现,编译出来的代码,竟然从0x0地址开始的。这是怎么回事呢?再次谢谢过!!!:D
清风过山岗 发表于 2010-9-28 12:53 | 显示全部楼层
printf函数很大很费时,效率很低;第一次看到大家在嵌入式系统中使用这个函数;我要是老板就炒了你;
 楼主| re张风 发表于 2010-9-28 14:07 | 显示全部楼层
我觉得并不是使用printf浪费时间而不用。用这种方式,简单,通用易移植,当然也可以自己封装一个适合自己要求的收发函数出来,这一点应该都会做。我现在的问题是连编译系统都没有搞清楚,所以就只有先浪费自己,以后再说优化自己的代码的事情。呵呵
还有,说一句。我是自己掏钱、自已买元器件、自己焊板子,再大的老板也炒不了我,呵呵。我还有一个编译地址的问题,帮我解决一下。谢谢:lol
mohanwei 发表于 2010-9-28 14:12 | 显示全部楼层
printf效率极高,应该说没有几个人能自己编一个函数超过它(当然前提是同等重量级的,支持char,int,float等多种格式变量的打印)……
如果要缓冲,自己在工程里放一个putchar()函数接管底层输出即可
清风过山岗 发表于 2010-9-28 15:29 | 显示全部楼层
你把新的固件库文件CPOY到项目目录应该是可以的;
le062 发表于 2011-4-6 16:11 | 显示全部楼层
多谢。 2# bruceleeIKA
zhanxiage110 发表于 2012-4-9 22:58 | 显示全部楼层
不错 学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:走,向前走,再走,继续走! http://www.uectr.com

51

主题

525

帖子

1

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