说这么长说的啥,arduino里包含完整的HAL库的意义在于,arduino可以直接使用cubeMX生成的代码,你说的这些完全就没有问题,按stm32duino项目管理员的说法,早在2016年arduino就支持cubeMX输出代码,实际上就是可以同时用arduino库和HAL库。
你想用STM32的DMA就很简单,在MX里配置好导出项目,在VSC里打开,加个#include<Arduino.h>,再和Arduino的代码合并一下就行了
ESP32那更不用说,ESP-IDF支持use arduino as component,Arduino的项目反向拿到IDF继续写。
效率谁不重要,单纯为了技术而技术,那是炫技。不是说AI没有发展的前景,而是现在这个时间点,AI的效率并不比Arduino高,你吹得太过了。
【 在 lvsoft 的大作中提到: 】
: 额,c/c++混用,这个是基础中的基础,在座的各位应该没人不知道吧,至于拿出来说么?
: 我说的arduino框架的极限,就是很简单的字面上的意思。arduino源于avr,本质上就是以avr的外设为蓝本,构造了一个虚拟的MCU,整合了各种常用外设的抽象。流行后有各种新的mcu架构被映射到了这个虚拟的MCU抽象上,同时也有大量的库基于它做了支持。因为解除了mcu arch和具体实现之间的耦合,它就可以很方便的实现n种mcu架构 x m种库应用的组合。这是它最大的价值,但这也是它的上限。说的更简单一点,arduino就是一个小而美的虚拟机。你当然可以享受这个虚拟机下生态带来的好处,但你当然也要面对这个虚拟机做出的取舍。
: 因为实际的硬件是如此的复杂,根本就不可能有一套统一的,又完全没损失的抽象来满足所有mcu arch x 所有的lib组合需求。比如arduino下你想要dma?只有samd架构下才有,你例子里的esp32就没有咯。比如dma资源冲突了咋办?arduino的dma抽象能帮你自动规划分配资源嘛?比如stm32/at32的adc2无法在dma2下使用,这种问题它的dma抽象能让你不关心细节闭着眼直接用嘛?
: ...................
--
FROM 14.223.160.*