[其他ST产品] 如何在ST32 Cpp代码中使用字符串(类)

[复制链接]
 楼主| lvluoo 发表于 2025-6-16 11:00 | 显示全部楼层 |阅读模式
在代码中使用字符串类型(字符串类,而不是字符指针或数组)
程序中有很多字符串消息
Arduino的IDE中做这一点,其字符串类很好用
如何在ST32 Cpp代码中使用字符串(类)


公羊子丹 发表于 2025-7-31 15:42 | 显示全部楼层
我之前在STM32F4上用过 std::string,要确保你编译器启用了C++支持,不然编译器会报一堆 STL 错。
周半梅 发表于 2025-7-31 15:48 | 显示全部楼层
Arduino 的 String 类确实用起来方便,但在 STM32 里更推荐用 std::string,不过别忘了堆空间要配置好。
帛灿灿 发表于 2025-7-31 15:49 | 显示全部楼层
如果担心动态内存开销,可以试试 ETL,里面的 etl::string 是定长的,适合嵌入式。
童雨竹 发表于 2025-7-31 15:50 | 显示全部楼层
我用 STM32CubeIDE 配 CMake 工程时,只要把 -lstdc++ 链进去,std::string 用起来就像 PC 一样了。
万图 发表于 2025-7-31 15:51 | 显示全部楼层
你项目里字符串多的话,其实可以写个轻量级的 String 类,不用 STL,那样控制更精细一点。
Wordsworth 发表于 2025-7-31 15:51 | 显示全部楼层
要是用的是 newlib nano,记得实现 _sbrk,不然一用 std::string 直接跑飞。
Bblythe 发表于 2025-7-31 15:52 | 显示全部楼层
如果你用的是 HAL 库,那 printf 打日志配合 std::string::c_str() 也很好使,串口打印特别清晰。
Pulitzer 发表于 2025-7-31 15:53 | 显示全部楼层
有次我把 Arduino 的 String 类抄过来改了一版用在 STM32 上,改掉动态分配那块,照样能用。
Uriah 发表于 2025-7-31 15:54 | 显示全部楼层
C++ 工程记得改一下 .ioc 的项目设置,把编译器从 gcc 换成 g++,不然 <string> 会报错。
Clyde011 发表于 2025-7-31 15:55 | 显示全部楼层
其实只要编译器支持 C++,ST 的芯片就能用 std::string,关键是控制好内存,别一直 new delete。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

69

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部