AG32 的 SDK 是 C 代码实现的。驱动和样例也都是 C 代码。
但 AG32 的 SDK 环境是支持 C++代码混用的。
并且使用方式也很简单:
1. CPP 的代码在工程中定义成.cpp 后缀;
2. 在 platformio.ini 里配置对 cpp 的编译;
样例工程 example_testCpp.rar 中,展示了一个极简的 C 调用 CPP 的样例。
在工程中,定义了一个 Circle 类,然后在 example 中使用该类。
样例说明:
1. 在 example 工程下新增 3 个文件:
2. 每个文件实现如下:3. 在 example.c 里调用如下:
样例很简单。
然后,需要在 platformio.ini 里配置下对 cpp 的使能即可。后续的编译,跟原来纯粹 C 一样使用即可。
最终从串口工具里,可以看到执行结果如下:
补充:
1. 如果要指定使用 c++的某个版本,则在 platformio.ini 里指定。
比如,要指定使用 c++20,则用:
build_src_flags = -std=c++20
2. 如果用以上的会出现 warning,该如何屏蔽?
仍然在上述的属性后,追加如:
build_src_flags = -std=c++20 -Wno-volatile