DSP与PC通信的问题,怎样发送浮点数到PC上

2019-03-26 15:31发布


在电机控制中,想把采样数据发到电脑上看。
采样数据为浮点数。
但SCI的寄存器只有8位,我把浮点数转换成ASCII码发送,时间太长影响了电机控制性能。
所以想问一下,有没有更快的办法。
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
dontium
1楼-- · 2019-03-26 22:21
< 若要更快,就别让电脑处理了,既然用了DSP,就让DSP来处理它。
crusadelee
2楼-- · 2019-03-27 02:14
< UNION FLOATTOBYTE{
CHAR BDATA[4];
FLOAT FDATA;
} DATA;
DATA.FDATA=浮点数;
DATA.BYTE[0]=1 OF 4;
DATA.BYTE[1]=2 OF 4;
DATA.BYTE[2]=3 OF 4;
DATA.BYTE[3]=4 OF 4;
下位机 用来发送;
计算机在反相组装
Jalon2019
3楼-- · 2019-03-27 04:12
crusadelee 发表于 2015-4-21 13:12
UNION FLOATTOBYTE{
CHAR BDATA[4];
FLOAT FDATA;
} DATA;
DATA.FDATA=浮点数;
DATA.BYTE[0]=1 OF 4;
DATA.BYTE[1]=2 OF 4;
DATA.BYTE[2]=3 OF 4;
DATA.BYTE[3]=4 OF 4;
下位机 用来发送;
计算机在反相组装

这是个好办法!

不过DSP里的char也是16位的,发的不太对。我还得再想想。。。有什么建议吗
crusadelee
4楼-- · 2019-03-27 07:19
这个我大意了。
crusadelee 发表于 2015-4-21 13:12
UNION FLOATTOBYTE{
STRUCT {
  Uint16      BYTE3:8;     // 31:24
   Uint16      BYTE2:8;     // 23:16
   Uint16      BYTE1:8;     // 15:8
   Uint16      BYTE0:8;     // 7:0        
}BDATA;
FLOAT FDATA;//FLOAT 是32位的前提下
} DATA;
sure220
5楼-- · 2019-03-27 13:18
 精彩回答 2  元偷偷看……
Jalon2019
6楼-- · 2019-03-27 14:43
 精彩回答 2  元偷偷看……

一周热门 更多>