OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3322|回复: 7

U8数组数据如何转化为float类型数据

[复制链接]

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2018-4-7
在线时间
29 小时
发表于 2018-5-28 17:14:20 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]if(USART_RX_STA&0x8000)
                {                                          
                        len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
                        printf("\r\n您发送的消息为:\r\n\r\n");
                        for(t=0;t<len;t++)
                        {
                                USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
                                while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
                        }
                        //printf("\r\n\r\n");//插入换行
                        printf("%f",USART_RX_BUF[t]);
                        Kp=USART_RX_BUF[t];
                        USART_RX_STA=0;
                }[/mw_shl_code]

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2018-4-7
在线时间
29 小时
 楼主| 发表于 2018-5-28 17:15:34 | 显示全部楼层
12行 串口通讯 我想把U8型的USART_RX_BUF[t]这个数组里的数据赋值给FLOAT型的Kp,是不是需要转化一下,该怎么转化。
回复

使用道具 举报

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2018-4-7
在线时间
29 小时
 楼主| 发表于 2018-5-28 17:38:29 | 显示全部楼层
不对 好像应该是串口发送的字符串 比如我发2.34,怎么将串口数组接收的字符串转化为可以计算的float型
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4518
金钱
4518
注册时间
2018-5-11
在线时间
945 小时
发表于 2018-5-28 17:49:24 | 显示全部楼层
没有用过,
但对应sprintf有一个函数scanf,
你可以了解一下.
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

20

主题

450

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4910
金钱
4910
注册时间
2017-7-6
在线时间
720 小时
发表于 2018-5-28 17:53:36 | 显示全部楼层
联合体
回复

使用道具 举报

5

主题

133

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1372
金钱
1372
注册时间
2018-3-5
在线时间
741 小时
发表于 2018-6-3 08:18:09 | 显示全部楼层
内存拷贝
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-6-3 08:31:56 | 显示全部楼层
石原里美 发表于 2018-5-28 17:38
不对 好像应该是串口发送的字符串 比如我发2.34,怎么将串口数组接收的字符串转化为可以计算的float型

串口调试助手可发送不了2.34这种小数,它发送的可是2.34对应的ASCII码即0x32 0x2e 0x33 0x34,你的MCU接收到后先找到小数点0X2E,然后把数字部分减去0x30即可得到你的小数2.34了。
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-6-3 08:36:41 | 显示全部楼层
石原里美 发表于 2018-5-28 17:38
不对 好像应该是串口发送的字符串 比如我发2.34,怎么将串口数组接收的字符串转化为可以计算的float型

还得看你发送端是怎么发送这个2.34的了,如果发送端直接发送的2.34在内存中存储的形式(float在内存中占4个byte,按照科学计数法的方式存储的,你去查查百度即可了解),那么接收端就好办了,直接这4个byte强制类型转换为float即可.
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-7 19:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表