Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Crossworks字符串转换 我们使用CuxWorksIDE在C++中运行FRIERTOS。在这里,我们使用内置的STM32_HAL函数通过串行com发送数据。我们希望通过串行com将传感器数据发送到外部设备_C++_Stm32_Freertos - Fatal编程技术网

Crossworks字符串转换 我们使用CuxWorksIDE在C++中运行FRIERTOS。在这里,我们使用内置的STM32_HAL函数通过串行com发送数据。我们希望通过串行com将传感器数据发送到外部设备

Crossworks字符串转换 我们使用CuxWorksIDE在C++中运行FRIERTOS。在这里,我们使用内置的STM32_HAL函数通过串行com发送数据。我们希望通过串行com将传感器数据发送到外部设备,c++,stm32,freertos,C++,Stm32,Freertos,以下是exmaple格式: float humiditySensorValues[2]; uint8_t buffer[100] = {"Temperature = ? \r\n"} ; HAL_UART_Transmit(&husart3, buffer, sizeof(buffer), HAL_MAX_DELAY); 在上面的代码中,我们希望替换“?->湿度传感器值[0]”,并发送数据 其中,湿度传感器值[0]包含更新的温度数据值,单位为度 任何解决

以下是exmaple格式:

float humiditySensorValues[2];
uint8_t buffer[100] =  {"Temperature = ? \r\n"} ;    

HAL_UART_Transmit(&husart3, buffer, sizeof(buffer), HAL_MAX_DELAY);
在上面的代码中,我们希望替换“?->湿度传感器值[0]”,并发送数据

其中,湿度传感器值[0]包含更新的温度数据值,单位为度


任何解决上述问题的建议都将不胜感激。

使用
snprintf

char buffer[100] = {0};
int len = snprintf(buffer, sizeof(buffer), "Temperature = %f \r\n", (double)humiditySensorValues[0]);
HAL_UART_Transmit(&husart3, (uint8_t*)buffer, len, HAL_MAX_DELAY);

不要使用
sprintf
,因为它不会检查缓冲区溢出。

您是否正在查找
snprintf(缓冲区,100,“温度=%f\r\n”,湿度传感器值[0])你提到C++,但是问题是标记C,而 SNPrTNF在C++中是不合适的。我建议先学习C,然后开始UC编程。基本知识是不可能编写程序的。如果你使用C++,那么你的问题C++就不加标记。C字符串处理在两种语言之间是完全不同的。通过使用sFoString或STD::HORE堆分配和所有其他的PC GoO,C++打开了一个选项,使某些东西甚至比SaveTf(这是一个成就)更高效。因为在M4以下的Cortex M上使用浮点而不使用FPU是骗人的-它将链接到可怕的软件浮点库。此外,由于ARM标准库已禁用浮点打印F支持,请添加如何打印浮点。@P_uJSupportsWomenipland,可以启用它,请参阅文章。