最近在调试一套代码,需要将一个浮点型的数转成一个字符串输出
代码跑在stm32上,用到是串口DMA发送,所以不太好直接使用 printf() 将不同类型的数据输出,所以需要先将其他种类型的数据转成字符串型的数据,再通过串口DMA输出。
试了较多方法,如 itoa() ,atoi()等,也尝试自己编写一个转换函数,但是效果不尽人意,最后。。。 找到了利用 sprintf() 这个函数来转换的方法,这里感谢这个帖子
C语言itoa()函数和atoi()函数详解(整数转字符C实现)_XuePiaoFei1的专栏-CSDN博客
举例说明:
float SPEED_DATA = 2.054;
char SPEED_DATA_itoa[5];
sprintf(SPEED_DATA_itoa,"%5.3f",SPEED_DATA );
以上代码意思为:将浮点型数 SPEED_DATA 以 %5.3f(占位5,小数点后3位)的格式转换成字符串并赋给 *SPEED_DATA_itoa 数组。
其他数据类型同理。
缺点:函数 sprintf(...) 运行较慢