在一个Arduino工程里,可以用Arduino自带的标准库wifi.h,也可以用ESP-IDF标准库的esp_wifi.h,区别是前者是CPP写的,后者是C写的。


所以在esp_wifi.h里,会注明
#ifdef __cplusplus
extern "C" {
#endif
这样这个头文件就会调用esp-idf的工具包里的对应版本的gcc编译,任何第三方的c库,都可以用这种方法在Arduino里加载,所以你说的超出Arduino框架范围的事情是不存在的,HAL库实际上只是Arduino库的一个子集。Arduino的库实际上是在标准HAL库的基础上预编译的静态链接库,把原来标准库的API重新封装成新的API而已,实际上完全只用HAL库也能写出Arduino工程,只是没人这样做而已。
你只是没搞明白Arduino是怎么动作的而已,我现在都是C库和CPP库混着用,语法也是混着用,并不存在什么Arduino搞不定的功能。
【 在 lvsoft 的大作中提到: 】
: 这不是一个例子,而是一个很复杂系统中的一小部分。
: Arduino基本上就是个demo而已。Arduino搞不了超出它框架范围的事情。
: 我本来就很喜欢用Arduino和micropython偷懒,当然很清楚你说的这些。包括之前跟gpt的对话中,我也想过丢Arduino实现中的littlefs作为参考,只是最后还是选了littlefs官方页面上的example而已。总之我这个case是不可能用Arduino搞定的。能搞定我根本不会有这次尝试,早就直接这么干了。
: ...................
--
FROM 14.223.160.*