搜索
bottom↓
回复: 30

一个面试问题,怎样将一个float型的数据通单片机的P0口发送出去。

[复制链接]

出0入0汤圆

发表于 2009-2-27 08:16:04 | 显示全部楼层 |阅读模式
前两天去面试,主考官问了一个问题,我就傻了。工作自然也丢了,现在我把这个问题放到论坛,希望有人答出来,说不定下次你面试的时候也会问到哦

问题是:怎样将一个float型的数据通单片机的P0口发送出去。

以下蓝色文字由站长:armok 于:2009-02-27,08:26:16 加入。
你的原标题:“<font color=black>一个面试问题,请高手回答.
” 不合符规定。请更改成能说明帖子大意的标题
试想一下,如果本论坛的帖子标题清一色的‘帮助!’,‘ADC求救!’等笼统的标题,你在阅读的过程中会造成许多麻烦。
所以本论坛规定:一定要起一个能说明帖子大意的标题。不允许“关于 AVR 的 ADC 使用!”这种笼统标题。作为标题,必须说明清楚:
 ①你是在请教问题,还是在介绍有关的知识?
 ②ADC的问题有许多,你是想说那方面的内容?
注意以上两点,标题应该改成如:“请教:ADC 可以不使用中断吗?”。
起一个能说明帖子大意的标题,除了减轻我们的帖子分类整理工作,还方便其它人阅读,节省大家的时间。
注:使用合格的标题,对你来说只是举手之劳,但却会为我们的管理工作提供很大的便利。谢谢你的支持。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
头像被屏蔽

出0入0汤圆

发表于 2009-2-27 08:24:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入90汤圆

发表于 2009-2-27 08:43:42 | 显示全部楼层
一个浮点数据,有效部分是32位!将这32位拆成4个8位就可以了,然后按高低顺序发送出去就可以了!很简单嘛!

出0入0汤圆

发表于 2009-2-27 10:30:47 | 显示全部楼层
呵呵,楼主的问题可能是不知道怎么把一个float型拆开吧!

出0入0汤圆

发表于 2009-2-27 10:35:38 | 显示全部楼层
丢得值...这个问题搞不定,去做这个工作也很痛苦...

出0入0汤圆

发表于 2009-2-27 10:42:58 | 显示全部楼层
是呀,问题很简单呀,LZ用C的时间不长吧。

出0入0汤圆

发表于 2009-2-27 11:02:33 | 显示全部楼层
这也算是个问题啊。这个估计考的不是串行发送的问题吧,我想应该是考数据占用空间和如何改变数据类型的吧?用C语言和汇编一样,都很简单的。另外通过P0口发送出去?这个单片机是什么单片机?这个题本身还有点问题。普通51的P0口不带硬件串行通讯,那么要用软件时序来做,但对于C8051F类单片机,则硬件的串行通讯刚好就在P0口上,直接设置一下交叉开关就可以硬件发送了。估计出题的人没想考这方面的问题吧?

出0入0汤圆

发表于 2009-2-27 20:53:37 | 显示全部楼层
直接把二进制发出去就行了,
收到再变回浮点数。

出0入0汤圆

发表于 2009-2-27 22:02:50 | 显示全部楼层
定义成共用体,float和另外一个数组共用,把数组发出去不就等于吧float发出去了吗

出0入0汤圆

发表于 2009-3-4 21:48:31 | 显示全部楼层
长知识了。

出0入0汤圆

发表于 2011-5-24 08:48:14 | 显示全部楼层
定义一个char型指针数组,把float数据的地址付给char型指针数组。再往外送char数组数据。类似结构体

出0入0汤圆

发表于 2011-5-24 10:00:24 | 显示全部楼层
好像理解错了吧…考官说的P0口发送数据,应该是指把数据拆开后,再按并行的方式发送数据吧?按这样说应该不是说串口通信…
难道是考怎么同步数据的问题??

出0入0汤圆

发表于 2011-5-24 10:04:14 | 显示全部楼层
呵呵,共用体,学习了

出0入0汤圆

发表于 2011-5-24 10:07:10 | 显示全部楼层
关注。

出0入0汤圆

发表于 2011-5-24 11:09:42 | 显示全部楼层
这要求的是用P0口发送出去,
并没要求你也要解决接收的问题,
所以LZ只要把数据转换成4个八位的依次给P0应该就可以了吧!

出0入0汤圆

发表于 2011-5-24 11:54:28 | 显示全部楼层
mark,关键词:共用体。

出0入0汤圆

发表于 2011-5-24 16:26:52 | 显示全部楼层
p0口应该是要并口发送吧,自己定协议啊,实在不行转换成整型之后再换算回来
我记得浮点数可以换算成4字节16进制数,具体算法记不清了

出0入0汤圆

发表于 2011-5-24 16:37:06 | 显示全部楼层
把浮点数拆开,然后一位一位的发出去

出0入0汤圆

发表于 2011-5-24 17:13:47 | 显示全部楼层
我觉得传送的都是0,1,浮点与否只是解释方式;传送时只要做到:告诉对方传送的数据类型,格式;传送0,1。即协议与数据。

出0入0汤圆

发表于 2011-5-24 17:31:40 | 显示全部楼层
完全不理解主考官想考什么

出0入0汤圆

发表于 2011-5-24 18:10:06 | 显示全部楼层
主考官就是想考一下你FLOAT型数据是怎么存的!

出0入0汤圆

发表于 2011-5-24 18:15:37 | 显示全部楼层
typedef union{
    uint32_t i;
    float    f;
}i2f;

i2f.f = xxx;
xmit_232(i2f.i >> 24);
xmit_232(i2f.i >> 16);
xmit_232(i2f.i >> 8);
xmit_232(i2f.i );

出0入85汤圆

发表于 2011-5-24 18:38:06 | 显示全部楼层
定义一联合体,或用ftoa()

出0入0汤圆

发表于 2013-6-24 10:09:54 来自手机 | 显示全部楼层
我编程都没涉及这些,看样子自己的能力还很低级啊

出0入0汤圆

发表于 2013-6-24 10:18:12 | 显示全部楼层
原来是用共用体啊,长知识了!

出0入0汤圆

发表于 2013-6-24 11:01:31 | 显示全部楼层
要是我估计就是定协议发出去了

出0入0汤圆

发表于 2013-6-24 14:25:58 | 显示全部楼层
我是一个菜鸟,如果我回答,我会想到把它转成整形的,然后再分8位依次发出去。。。。。。。。但是没有明白他的意思,P0口没有串口    高手勿拍

出0入0汤圆

发表于 2013-6-25 22:29:48 | 显示全部楼层
不錯 ,不錯,學習學習!

出0入0汤圆

发表于 2013-6-26 12:28:50 | 显示全部楼层
共用体,学习下

出0入0汤圆

发表于 2013-6-26 14:29:14 | 显示全部楼层
没做过,又长知识了

出0入0汤圆

发表于 2013-6-26 16:13:49 | 显示全部楼层
应该约定好先发高位或者先发低位就可以了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 16:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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