jianhong_wu 发表于 2014-11-8 18:52:26

串口怎么样发送浮点数据?可以用printf函数吗?已解答。

安徽 —杨:
怎么设置串口使他打印浮点型数字?

鸿哥-深圳:
不要用字符。直接用十六进制。另外,在单片机的世界里,串口传的都是十六进制的数据或者ASCII码,没有打印浮点数的。我做项目从来不用字符。即使有字符,也是把他翻译成十六进制的ASCII码来进行发送.比如,你要发送0.1的数据,0.1就包含3个十六进制的ASCII码30 2E 31.

纯农民-杭州:
转换过来后可以用atof转换过来,鸿哥,是不是?

鸿哥-深圳:
我在单片机的世界里,从来不用类似atof这样的转换函数。转换函数都是自己重新写.


Tony--青岛:


这个不算吗?

鸿哥-深圳:
接受到的这些字符,其实单片机本质上是发送这些字符的十六进制ASCII码。

安徽 —杨:
因为我想通过计算来打印计算出来的值

鸿哥-深圳:
你需要自己做一些数值与显示的转换函数。

纯农民-杭州:
那sprintf在单片机中用的多不多

鸿哥-深圳:
我从来不用。自己做发送函数。自己做转换函数。单片机串口的本质是发送十六进制数据,这个是本质。

安徽 —杨:
感觉这样做有点难度啊。

鸿哥-深圳:
其实对我来说很简单的。这些你们不要急,以后玩多了就会觉得不难。建议你看看我连载文章《从业将近十年...程序框架》关于串口那部分的内容。


纯农民-杭州:
以前做过lcd显示,也是用自己的函数简单转换。现在网友提起,就想能不能用库函数。

鸿哥-深圳:
如果你是用stm32单片机,可以把printf函数经过调整后,直接当发送字符函数来用,但是本质上还是跟自己做的发送函数一样。反正做单片机项目,我从来不用printf函数。喜欢自己重新写发送函数,自己写的函数自己明白,遇到问题不会感觉有黑匣子的感觉。

纯农民-杭州:
嗯嗯,谢鸿哥。


Acksman 发表于 2014-11-8 23:24:04

鸿哥的意思是想告诉我们,调用库函数自己心里没底,不能完全知道那些库函数的实现方式吗?

jianhong_wu 发表于 2014-11-9 08:05:39

Acksman 发表于 2014-11-8 23:24
鸿哥的意思是想告诉我们,调用库函数自己心里没底,不能完全知道那些库函数的实现方式吗?

对。而且很多不是很实用。即使实用,你也要花很多时间进去了解这个黑匣子的工作规律,与其这样还不如自己编写一个函数来实现,这样更加方便快捷,而且可靠。
页: [1]
查看完整版本: 串口怎么样发送浮点数据?可以用printf函数吗?已解答。