打印

SCI口输入float类型数据

[复制链接]
2707|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cuoai|  楼主 | 2007-4-26 16:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
liqf| | 2007-4-27 08:25 | 只看该作者

用指针

*

使用特权

评论回复
板凳
cuoai|  楼主 | 2007-4-27 13:37 | 只看该作者

谢谢liqf

谢谢你,不过我还是没做好,能不能说详细一点或者给一段简单的代码我看看

使用特权

评论回复
地板
computer00| | 2007-4-27 14:44 | 只看该作者

float的数据可不是8位的

你先搞清楚它的存储格式吧。通常是4个字节的,你把这4个字节读出来看看。

在PC上和在DSP中分别写一个一样的浮点数,然后读出来比较一下,或许你会发现一些规律.....

如果这两者用的都是同一种格式的(通常是IEEE的),那么直接按字节复制过去就行了(注意大、小端模式)。

使用特权

评论回复
5
xwj| | 2007-4-27 15:02 | 只看该作者

用联合

使用特权

评论回复
6
cuoai|  楼主 | 2007-4-27 17:22 | 只看该作者

怎样写具体的中断程序

谢谢各位,我用的存储格式是IEEE,我是说接收和发送缓存器都是8位int格式啊,32位的浮点数据不能直接向缓存器写和读,我要怎样做才可以读和写?

使用特权

评论回复
7
cuoai|  楼主 | 2007-4-27 17:25 | 只看该作者

我用的是lf2407a

我用的是lf2407a的SCI口外接max232.

使用特权

评论回复
8
cuoai|  楼主 | 2007-4-27 17:35 | 只看该作者

谢computer00

我也试过想按字节发送,但浮点数据格式不能移位,我要怎样把一个浮点数分解成4个字节咧?用浮点数据指针也不能移位啊

使用特权

评论回复
9
computer00| | 2007-4-27 18:07 | 只看该作者

强制类型转换啊

取它的地址,然后把它强制转换为char型的指针,然后用这个指针读接下来的4个地址,就可以得到4个字节了。

使用特权

评论回复
10
chen3bing| | 2007-4-28 20:16 | 只看该作者

RE

根据错误提示,你前面好象声明过一个cp指针,重复了.

使用特权

评论回复
11
computer00| | 2007-4-29 00:51 | 只看该作者

可以啊

 unsigned char buf[4];
 float f;

 f=123.456;
 buf[0]=((unsigned char *)&f)[0];
 buf[1]=((unsigned char *)&f)[1];
 buf[2]=((unsigned char *)&f)[2];
 buf[3]=((unsigned char *)&f)[3];


执行完后

buf[0]=0x79,
buf[1]=0xE9,
buf[2]=0xF6,
buf[3]=0x42.

使用特权

评论回复
12
cuoai|  楼主 | 2007-4-29 16:57 | 只看该作者

谢谢各位大虾

现在好了,谢谢computer00及chen3bing等大虾给我的指点,我把cp=(char*)&ff这个语句和全局变量写到一起了,低级错误,耽误大家的时间实在不好意思。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

23

帖子

0

粉丝