SCI口输入float类型数据

[复制链接]
4314|11
 楼主| cuoai 发表于 2007-4-26 16:50 | 显示全部楼层 |阅读模式
我需要从PC机上接收float类型数据,在DSP中也以float类型来存储,只有SCI口可以用,我接收到8位的数据后要怎样处理咧,先谢谢各位大虾了。
liqf 发表于 2007-4-27 08:25 | 显示全部楼层

用指针

*
 楼主| cuoai 发表于 2007-4-27 13:37 | 显示全部楼层

谢谢liqf

谢谢你,不过我还是没做好,能不能说详细一点或者给一段简单的代码我看看
computer00 发表于 2007-4-27 14:44 | 显示全部楼层

float的数据可不是8位的

你先搞清楚它的存储格式吧。通常是4个字节的,你把这4个字节读出来看看。<br /><br />在PC上和在DSP中分别写一个一样的浮点数,然后读出来比较一下,或许你会发现一些规律.....<br /><br />如果这两者用的都是同一种格式的(通常是IEEE的),那么直接按字节复制过去就行了(注意大、小端模式)。
xwj 发表于 2007-4-27 15:02 | 显示全部楼层

用联合

  
 楼主| cuoai 发表于 2007-4-27 17:22 | 显示全部楼层

怎样写具体的中断程序

谢谢各位,我用的存储格式是IEEE,我是说接收和发送缓存器都是8位int格式啊,32位的浮点数据不能直接向缓存器写和读,我要怎样做才可以读和写?
 楼主| cuoai 发表于 2007-4-27 17:25 | 显示全部楼层

我用的是lf2407a

我用的是lf2407a的SCI口外接max232.
 楼主| cuoai 发表于 2007-4-27 17:35 | 显示全部楼层

谢computer00

我也试过想按字节发送,但浮点数据格式不能移位,我要怎样把一个浮点数分解成4个字节咧?用浮点数据指针也不能移位啊
computer00 发表于 2007-4-27 18:07 | 显示全部楼层

强制类型转换啊

取它的地址,然后把它强制转换为char型的指针,然后用这个指针读接下来的4个地址,就可以得到4个字节了。
chen3bing 发表于 2007-4-28 20:16 | 显示全部楼层

RE

根据错误提示,你前面好象声明过一个cp指针,重复了.
computer00 发表于 2007-4-29 00:51 | 显示全部楼层

可以啊

&nbsp;unsigned&nbsp;char&nbsp;buf[4];<br />&nbsp;float&nbsp;f;<br /><br />&nbsp;f=123.456;<br />&nbsp;buf[0]=((unsigned&nbsp;char&nbsp;*)&f)[0];<br />&nbsp;buf[1]=((unsigned&nbsp;char&nbsp;*)&f)[1];<br />&nbsp;buf[2]=((unsigned&nbsp;char&nbsp;*)&f)[2];<br />&nbsp;buf[3]=((unsigned&nbsp;char&nbsp;*)&f)[3];<br /><br /><br />执行完后<br /><br />buf[0]=0x79,<br />buf[1]=0xE9,<br />buf[2]=0xF6,<br />buf[3]=0x42.<br />
 楼主| cuoai 发表于 2007-4-29 16:57 | 显示全部楼层

谢谢各位大虾

现在好了,谢谢computer00及chen3bing等大虾给我的指点,我把cp=(char*)&ff这个语句和全局变量写到一起了,低级错误,耽误大家的时间实在不好意思。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

23

帖子

0

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