6959|17

8

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

FM28335串口发送浮点型数据。关键问题是怎么把浮点型转为同数值字符串?怎么转/ [复制链接]

 
5芯积分
FM28335发送时会自动将小数点后的抹去,转为十六进制,要怎么 才能正确发送浮点型数据呢?
在接受来自上微机的数据时,只能接收一字节,比如发送1.2和10,都实现接收到1,这个问题要怎么解决呢?

最新回复

我已经做出来了。而且可以发送中文,。可以导入Excel表格,简直好用的不得了   详情 回复 发表于 2018-5-11 17:56

赞赏

1

查看全部赞赏

 
点赞 关注

回复
举报

6040

帖子

195

TA的资源

版主

沙发
 
接收到一字节,存起来,然后就可以接收第二个字节了,以此类推,接收多少字节都不是事。
 
 

回复

327

帖子

1

TA的资源

纯净的硅(初级)

板凳
 
FM28335是个单片机吗?对于浮点型单片机里面一般占用4个字节,如果只是要发送这4个字节的数据可以根据单片机的大小端,以常见的小端低地址表示多字节变量地址为例:
定义:float f_buf4;
发送方式:
依次发送 *((char *)&f_buf4),*((char *)&f_buf4+1),*((char *)&f_buf4+2),*((char *)&f_buf4+3).

第二个问题你的描述我不是很理解。
 
个人签名模电临时工
 
 

回复

30

帖子

0

TA的资源

一粒金砂(初级)

4
 
整数部分和小数部分分开发送

点评

谢谢您的建议正在尝试  详情 回复 发表于 2018-4-27 19:43
 
 
 

回复

525

帖子

235

TA的资源

版主

5
 
把浮点类型按照自己发送就行了,如上面说的4字节,下位机小端模式发送,上位机小端模式接收即可。
对于电脑或单片机而言只有二进制,不管字节,整形,浮点等。
如果不好理解,还可以将浮点转化成整形,例如
0.01,放大100倍,发送1,接收后再缩小100倍,就还原了。

点评

谢谢您的建议。但是扩大倍数,会超出发送缓存寄存器的最大发送范围。  详情 回复 发表于 2018-4-27 19:42
 
个人签名爱电子,爱生活
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

6
 
lcofjp 发表于 2018-4-25 21:58
接收到一字节,存起来,然后就可以接收第二个字节了,以此类推,接收多少字节都不是事。

方法一:就比如上位机发送的是1.2 给28335,您的意思是,我依次存储1和点和2,再把他们拼凑成1.2吗?
请问我如果用FIFO模式设置为28335每接收到三个字节就产生一次中断,是不是能直接在28335里读取到1.2,而不用方法一呢?FIFO的功能还不是很理解

点评

我建议你多看看书,好好打打基础,即是FIFO能那样用,现实中也不能那样用,实际应用中给你发多少字节是不可能确定的,所以你要做的是写通用的串口程序,不要写出来的代码只能接收一个字节、两个字节,没有使用价值。  详情 回复 发表于 2018-4-27 12:22
 
 
 

回复

6040

帖子

195

TA的资源

版主

7
 
findif 发表于 2018-4-27 10:48
方法一:就比如上位机发送的是1.2 给28335,您的意思是,我依次存储1和点和2,再把他们拼凑成1.2吗?
请 ...

我建议你多看看书,好好打打基础,即使FIFO能那样用,现实中也不能那样用,实际应用中给你发多少字节是不可能确定的,所以你要做的是写通用的串口程序,不要写出来的代码只能接收一个字节、两个字节,没有实用价值。
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

8
 
shipeng 发表于 2018-4-26 10:04
FM28335是个单片机吗?对于浮点型单片机里面一般占用4个字节,如果只是要发送这4个字节的数据可以根据单片 ...

fm28335是个dsp芯片,我试过您的方法了 ,没能正确发送。
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

9
 
lcofjp 发表于 2018-4-27 12:22
我建议你多看看书,好好打打基础,即使FIFO能那样用,现实中也不能那样用,实际应用中给你发多少字节是不 ...

嗯嗯,谢谢您的建议,确实只发这种固定字节的没有应用的意义。这次是想要通过labview给28335发送一个十以内的小数,就直接可以改dsp程序里的变量,所以字节是固定的。但是对于其他情况没啥意义,我现在连这个都没法实现,基础还是不行,但是也很烦,老师天天手机汇报,每周一Ppt汇报。除了TI提供的例程,还有没有哪里可以有应用到实际的例程啊?我查到的都是发送简单一个字母啥的那些。您有分享的嘛? 再次感谢您的回答
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

10
 
wsdymg 发表于 2018-4-27 00:24
把浮点类型按照自己发送就行了,如上面说的4字节,下位机小端模式发送,上位机小端模式接收即可。
对于电 ...

谢谢您的建议。但是扩大倍数,会超出发送缓存寄存器的最大发送范围。

点评

数据长度可以用多个字节啊,2字节不够就4字节  详情 回复 发表于 2018-4-28 06:37
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

11
 
初来乍到学习者 发表于 2018-4-26 15:03
整数部分和小数部分分开发送

谢谢您的建议正在尝试
 
 
 

回复

33

帖子

0

TA的资源

一粒金砂(中级)

12
 
1、有FM28335这个芯片么?是tms320f28335吧?
2、使用c语言的联合;

点评

en 是你说的那个;具体要怎么联合呢?  详情 回复 发表于 2018-5-2 10:49
 
 
 

回复

6040

帖子

195

TA的资源

版主

13
 
28335我不会用,不清楚具体细节,但是编程思路应该都是一样的。
首先,你要使用串口接收中断,每次中断接收一个字节数据。
然后,C语言的数组你懂吧,把每次中断接收到的数据存到数组里,然后根据的情况来判断各种开始和结束的条件,对数据进行处理。
我只能说这些了,慢慢来吧。

点评

队长,干得漂亮。  详情 回复 发表于 2018-4-28 06:35
 
 
 

回复

2700

帖子

0

TA的资源

五彩晶圆(初级)

14
 
lcofjp 发表于 2018-4-27 21:33
28335我不会用,不清楚具体细节,但是编程思路应该都是一样的。
首先,你要使用串口接收中断,每次中断接 ...

队长,干得漂亮。
 
个人签名作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
 
 

回复

2700

帖子

0

TA的资源

五彩晶圆(初级)

15
 
findif 发表于 2018-4-27 19:42
谢谢您的建议。但是扩大倍数,会超出发送缓存寄存器的最大发送范围。

数据长度可以用多个字节啊,2字节不够就4字节
 
个人签名作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

16
 
fickle 发表于 2018-4-27 20:10
1、有FM28335这个芯片么?是tms320f28335吧?
2、使用c语言的联合;

en 是你说的那个;具体要怎么联合呢?
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

17
 
用串口重定向的方法,。C语言的标准库,printf 发送即可。浮点数发送的话%.2f
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

18
 
我已经做出来了。而且可以发送中文,。可以导入Excel表格,简直好用的不得了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表