试过共用体的方法,不过ccs编译过后得到的4个字节跟标准IEEE 格式不一样。
如果把浮点数扩大1000倍,取整。那这个整数也是16位的,sci每次只能发1字节,要怎么通过把这个整数转换成两字节?
rookiecalf:
不管什么类型的数据,都是一个字节一个字节发的,只是接受端再使用同样的格式还原数据即可。如果同样是dsp,那么格式都是一样的,只要两端都使用相同的格式就成。不同mcu因为位数等的问题,可能会有差异,最多做一下字节顺序调整。
试过共用体的方法,不过ccs编译过后得到的4个字节跟标准IEEE 格式不一样。
如果把浮点数扩大1000倍,取整。那这个整数也是16位的,sci每次只能发1字节,要怎么通过把这个整数转换成两字节?
Xiaojie Hu:
回复 rookiecalf:
上位机用c#写的程序接收,上位机接收到的DSP转换出来的4个字节根本不符合标准IEEE格式,那我要怎么在上位机把它还原成小数?
试过共用体的方法,不过ccs编译过后得到的4个字节跟标准IEEE 格式不一样。
如果把浮点数扩大1000倍,取整。那这个整数也是16位的,sci每次只能发1字节,要怎么通过把这个整数转换成两字节?
rookiecalf:
回复 Xiaojie Hu:
你可以发送的时候按照标准IEEE格式进行
试过共用体的方法,不过ccs编译过后得到的4个字节跟标准IEEE 格式不一样。
如果把浮点数扩大1000倍,取整。那这个整数也是16位的,sci每次只能发1字节,要怎么通过把这个整数转换成两字节?
Xiaojie Hu:
回复 rookiecalf:
就是说自己按IEEE标准写函数把浮点数转换成4字节整型数组?这样会不会太麻烦了,而且每次发送一个浮点数都执行一次转换程序会影响程序时效性啊
试过共用体的方法,不过ccs编译过后得到的4个字节跟标准IEEE 格式不一样。
如果把浮点数扩大1000倍,取整。那这个整数也是16位的,sci每次只能发1字节,要怎么通过把这个整数转换成两字节?
Eric Ma:
原则上都是把浮点数转换成整形数,然后发给串口,可以借鉴IQMATH处理浮点数的方法,用一个long型数据来表示浮点。你要弄成整型数,那就相当于去掉一部分精度。
Eric
试过共用体的方法,不过ccs编译过后得到的4个字节跟标准IEEE 格式不一样。
如果把浮点数扩大1000倍,取整。那这个整数也是16位的,sci每次只能发1字节,要怎么通过把这个整数转换成两字节?
onebyte:
我一直用共用体的方法,挺好用的,数据基本不用处理;
只是根据CCS标准,把数的位置,重排一下便可以了
16位整数,用移位的方式获得字节,一个高8位,一个低8位
试过共用体的方法,不过ccs编译过后得到的4个字节跟标准IEEE 格式不一样。
如果把浮点数扩大1000倍,取整。那这个整数也是16位的,sci每次只能发1字节,要怎么通过把这个整数转换成两字节?
mangui zhang:
你参考一下Q格式的处理方法 肯定是通过放大 然后根据精度分为多个字节
通过串口传输 然后在做数据的还原