我想将浮点数转换为串行连接发送的字符串。 我已经使用sprintf,并且以前工作过,但是我现在正在运行mbed RTOS,它在到达sprintf行时挂起。MBED RTOS将浮点数转换为字符串/字符数组
以下是代码在while循环中停止的行,Im从端口中的mbed模拟器收集数据并需要通过串行显示它。
sprintf (buffer, ",%.2f,%.2f,%.2f,%.2f", sData1[0], sData1[1], sData1[2], sData1[3]);
我已经使用c_str()在RTOS下成功地将字符串转换回浮点数。
是否有类似于c_str()从float转换为字符串而不使用sprintf方法?
我们不知道,如果'buffer'是大到足以容纳结果字符串。请发布声明'buffer'的内容。 – PaulMcKenzie
@PaulMcKenzie对不起,错过了。其声明为“char * buffer”; – NoLiver92
是的,但缓冲区大小在哪里?你不能简单地声明一个未初始化的指针并将它传递给'sprintf'。如果你这样做,那么并不奇怪,事情并不奏效。也许一直以来的问题是,你正在逃避不明确的行为并相信事情正在发挥作用。 – PaulMcKenzie