void Send_float(double num) { uint8_t charbuff[] = {0,'.',0,0,0}; uint16_t temp = (uint16_t)(num * 1000); charbuff[0] = (uint8_t)(temp / 1000) + '0'; charbuff[2] = (uint8_t)((temp % 1000) / 100) + '0'; charbuff[3] = (uint8_t)((temp % 100) / 10) + '0'; charbuff[4] = (uint8_t)(temp % 10) + '0'; Send_String(charbuff);
时间: 2024-04-17 21:23:35 浏览: 76
opencv_face_detector_uint8.pb
这段代码是一个函数,名为`Send_float`,用于将浮点数转换为字符数组,并通过`Send_String`函数发送。
首先,定义了一个名为`charbuff`的字符数组,初始化为{0, '.', 0, 0, 0},用于存储转换后的浮点数字符。
接下来,将浮点数`num`乘以1000,并将结果转换为无符号16位整数`temp`。
然后,将`temp`除以1000得到百位数的整数部分,加上字符'0'后赋值给`charbuff[0]`。
接着,通过取模运算和除法运算,依次计算出十分位、个位和小数部分的整数值,并将它们加上字符'0'后赋值给`charbuff[2]`、`charbuff[3]`和`charbuff[4]`。
最后,调用`Send_String`函数,将字符数组`charbuff`发送出去。
需要注意的是,这段代码只是将浮点数转换为字符数组,并没有实现串口通信的部分。你可能需要自己实现`Send_String`函数来完成串口通信的功能。
阅读全文