STM32初识,USARTprintf例程工作不正常问题请教

renrenren   2010-9-23 17:03 楼主
刚接触STM32F103,GPIO例子已正常运行了,但是USART\printf例子不能正常运行,在板子上没有任何反应。就连运行开始时的那段字符都没有输出来,找了半天,也没有找出原因,不知道自己在被圈在什么地方了,特跑来请教。可下载的ZIP文件就是我编译通过但不能运行的工程文件,那位同仁有空帮试试。
Printf.zip (42.6 KB)
我用的是keil4进行编译的,例子用的是3.0固件中的例子,所以在工程中重新设置一下链接库文件的路径,应该就没有编译上的问题。

回复评论 (8)

请看截图,在Target Option中的Target选项中,将Use microLIB勾上

printfQ.JPG (52.12 KB)

点赞  2010-9-23 19:33
                                 加上就可以了。这是什么作用的呢?在说明里没有说明,我弄了一天,还不如你这一提示。能不能再详说一下这是为什么呢?谢谢!
点赞  2010-9-23 19:55
microlib提供一个有限的stdio子系统,它仅支持未缓冲的stdin,stdout和stderr.这样即可使用printf()来显示应用程序中的诊断消息。
其实,完全可以自己写串口发送函数,不用printf,这样也无需添加这个了。
点赞  2010-9-23 20:07
                                 另外,我重新定义了IROM1的起始地址为0x8002000,通过软件仿真发现,编译出来的代码,竟然从0x0地址开始的。这是怎么回事呢?再次谢谢过!!!
点赞  2010-9-23 20:08
                                 printf函数很大很费时,效率很低;第一次看到大家在嵌入式系统中使用这个函数;我要是老板就炒了你;
点赞  2010-9-28 12:53
我觉得并不是使用printf浪费时间而不用。用这种方式,简单,通用易移植,当然也可以自己封装一个适合自己要求的收发函数出来,这一点应该都会做。我现在的问题是连编译系统都没有搞清楚,所以就只有先浪费自己,以后再说优化自己的代码的事情。呵呵
还有,说一句。我是自己掏钱、自已买元器件、自己焊板子,再大的老板也炒不了我,呵呵。我还有一个编译地址的问题,帮我解决一下。谢谢
点赞  2010-9-28 14:07
printf效率极高,应该说没有几个人能自己编一个函数超过它(当然前提是同等重量级的,支持char,int,float等多种格式变量的打印)……
如果要缓冲,自己在工程里放一个putchar()函数接管底层输出即可
点赞  2010-9-28 14:12
                                 你把新的固件库文件CPOY到项目目录应该是可以的;
点赞  2010-9-28 15:29
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复