注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
damiaa的个人空间 https://home.eeworld.com.cn/space-uid-59433.html [收藏] [复制] [分享] [RSS]
日志

stm32和esp32在arduino中启动和setup,loop的区别

已有 1000 次阅读2022-12-14 11:51

                stm32和esp32在arduino中使用setup和loop的区别

最近用到了esp32,还玩得很嗨。但都是用idf。看arduino也不错。也玩过几下。这次分享一下它们启动的区别。

我现在用最新的arduinoide2.03. 首先咋们要找到

C:\Users\Admin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\cores\esp32

C:\Users\Admin\AppData\Local\Arduino15\packages\STMicroelectronics\hardware\stm32\2.3.0\cores\arduino

两个目录的main.c对照一下。如图:

stm32的main.c

esp32的main.c

 

发现stm32的main.c的程序入口函数main()是直接的调用了setup(),loop().

而esp32是创建了一个freertos任务loopTask,然后在loopTask任务里面调用setup(),loop().

所以esp32是默认带freertos任务,只要是启动了就开启了freertos。而且在loop里面的程序是始终回运行的。因为loop是loopTask任务里的一个调用的函数。

如果你是stm32在setup里开启任务并调度任务。那估计就不会跑到loop().里面来了。或者说你在loop里面调度任务后,调度后面的程序了不执行了,除非系统出了问题。

不知道我理解的对不对。

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章