OpenEdv-开源电子网

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

分享: 专属 printf() 函数!移植性强,可串口可LCD

[复制链接]

27

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2015-2-16
在线时间
5 小时
发表于 2015-8-17 10:30:53 | 显示全部楼层 |阅读模式

这下面就是大概功能了!

我是要写成可移植性比较强的代码,我会以宏定义的方式构建代码,只需要提供一个打印字符的函数就OK了
我不清楚标准printf函数所有功能,希望你们还提供多一下关于标准printf 的使用说明,因为有一些功能我还不知道!   
并且上面有的地方有可能出现错误,大家先把printf的标准功能 审核一下,不然写出来也是错误的,如果与标准printf 不一样就不如不写了!







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

使用道具 举报

8

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2015-8-1
在线时间
7 小时
发表于 2015-8-17 14:43:27 | 显示全部楼层
串口的话,直接重新定义 putc 输出到串口就可以直接用 printf 了。原子也是这么做的。
至于输出到液晶屏,或者说把液晶屏当成控制台输出窗口,这个任务不是一般人能做的。刚接触硬件,不知道是否有这方面的现成代码,但是,如果自己来完成,涉及的知识太多,感觉没有什么大的必要,而且有变通的方法,就是用 sprintf打印到字符串中,再把字符串画到屏幕上。
有软件开发经验,从0硬件基础学习STM32开发。
回复 支持 反对

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13125
金钱
13125
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-8-17 15:19:32 | 显示全部楼层
现在都不用printf了  直接用Jlink打印调试信息
学无止境
回复 支持 反对

使用道具 举报

27

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2015-2-16
在线时间
5 小时
 楼主| 发表于 2015-8-17 16:34:15 | 显示全部楼层
回复【3楼】jermy_z:
---------------------------------
怎么做到的?
回复 支持 反对

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13125
金钱
13125
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-8-17 16:35:13 | 显示全部楼层
回复【4楼】无:
---------------------------------
JTAG V4.98以上驱动就支持了,不过最好用JTAG V9 ,V8会被抓盗版
学无止境
回复 支持 反对

使用道具 举报

27

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2015-2-16
在线时间
5 小时
 楼主| 发表于 2015-8-17 16:35:34 | 显示全部楼层
回复【3楼】jermy_z:
---------------------------------
keil   打开那个调试   就是相当于打开 J-link 的调试信息是吗?
回复 支持 反对

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13125
金钱
13125
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-8-17 16:36:10 | 显示全部楼层
回复【6楼】无:
---------------------------------
不是
学无止境
回复 支持 反对

使用道具 举报

27

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2015-2-16
在线时间
5 小时
 楼主| 发表于 2015-8-17 16:37:30 | 显示全部楼层
回复【7楼】jermy_z:
---------------------------------

有空不? 我加你QQ  带我装逼带我飞
回复 支持 反对

使用道具 举报

8

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2015-8-1
在线时间
7 小时
发表于 2015-8-17 18:07:15 | 显示全部楼层
回复【3楼】jermy_z:
---------------------------------
Jlink打印调试信息,只能在开发时,当然功能强大。
但是,程序在客户那里时,接个串口,拿串口助手直接看程序的预置调试输出,也是有必要的。
有软件开发经验,从0硬件基础学习STM32开发。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-8-17 22:00:34 | 显示全部楼层
支持,楼主完成多少了?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

27

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2015-2-16
在线时间
5 小时
 楼主| 发表于 2015-8-26 22:16:57 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
 
其实很早就出来了,只不过是没人回复我就不想发了。
我找个时间优化一下,再发出来!  

我可以让他 printf 到屏幕上,只要你有 在屏幕上打印字符串的驱动就可以用!  
当然 当屏幕到最边的时候你的驱动要会自动换行到下一行,遇到 \r\n 也要换行,就行串口调试助手一样,这个是没法避免的,何况这个非常简单!
如果你有无线通信的驱动,也可以通过无线   printf 出去! 
你只要有底层的驱动,理论上我这个 printf 到什么地方都可以!
回复 支持 反对

使用道具 举报

8

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2015-8-1
在线时间
7 小时
发表于 2015-8-26 22:26:56 | 显示全部楼层
回复【11楼】无:
---------------------------------
只是有个疑问,我只是还没有理解到底这个专属的 printf 有什么特别的地方?
系统自身的 printf 底层调用 putc,只要我重写 putc 就可以让 printf 定向到任何地方。那么你这个专属的 printf 有什么优势呢?
如果你已经完成了输出到屏幕等地方的功能,还是非常有用的,但是这些地方还要我们自己写,那为什么不用系统提供的 printf?

没有别的意思,只是还没领会到这个专属 printf 的威力。
有软件开发经验,从0硬件基础学习STM32开发。
回复 支持 反对

使用道具 举报

17

主题

237

帖子

0

精华

高级会员

Rank: 4

积分
925
金钱
925
注册时间
2012-2-27
在线时间
393 小时
发表于 2015-8-27 09:10:47 | 显示全部楼层
支持楼主~~
回复 支持 反对

使用道具 举报

30

主题

705

帖子

1

精华

新手上路

积分
21
金钱
21
注册时间
2013-3-14
在线时间
52 小时
发表于 2015-8-27 09:49:56 | 显示全部楼层
回复【12楼】dragon7799:
---------------------------------
对呀,对呀。只要重写 putc 就可以实现输出到那里都行了的。楼主的这个是个鸡肋呀。stdio库自带的printf是大神级人物写成的很难超越啊。
原子哥是不是又要出黑科技了呀。^_^...
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-16 06:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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