stm32用串口接收到数据,怎么把接收到的字符串转换成浮点数?

2019-08-10 16:11发布

STM32接收到的数据是1.12 2.32  1  ,存放到数组A中,当想要去输出A[0]时,应该是A[0]=1.12, A[1]=2.32但是照例程改写出来是A[0]=1,只是个将每个数字当成了字符存到了数组中,怎么把这些存到数组中的字符串转出浮点型数据,实现我想要输出的结果?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
enan
1楼-- · 2019-08-11 11:50
本帖最后由 enan 于 2017-10-30 18:16 编辑

你这问题就问的一堆问题,你这个串口收到的1.12,2.32是收到到ASC码还是16进制。另外你这个A[0]=1.12f;应该这样写,告诉编译器这个玩意是浮点数,少废话给我当浮点数用浮点数格式化字符串是C基本用法啊
char str[10] = {0};
sprintf("%f",A[0]);
pinrt("%f",str);
Acuity
2楼-- · 2019-08-11 17:04
只有用C库函数不就可以了,加入头文件include<stdlib.h>
1、字符串和浮点数互转:atof、ftoa
2、字符串和整数互转:   atoi 、itoa
另外:什么类型的数组放什么类型的数据,一个字节型(字符型)的数组放浮点数当然不正确。
韩宇
3楼-- · 2019-08-11 23:02
dateher 发表于 2017-10-30 17:03
能帮我看下串口接收部分吗?  一直收不到
void USART1_Config(void)
{

没看你写这个,加上试试USART_ClearFlag(USART1, USART_FLAG_TC);  
还有复用串口1语句 USART_DeInit(USART1);  //复位串口1

一周热门 更多>