搜索
bottom↓
回复: 30

请问开发esp8266用什么方式

[复制链接]

出0入0汤圆

发表于 2021-8-26 08:32:01 | 显示全部楼层 |阅读模式
最近想玩8266啦,主要自己玩也不是专业的,请问推荐什么方式呢?
以前学过一点NONOS_SDK ,现在我看用arduino的不少,包括咱们论坛的墨水屏终端项目也是。
虽然是自己玩,但也要考虑效率,所以lua 或者microPython是不是就不太合适了?

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出5入10汤圆

发表于 2021-8-26 08:40:07 | 显示全部楼层
arduino 入手最快

出0入0汤圆

发表于 2021-8-26 08:41:37 | 显示全部楼层
至今没玩过arduino这些个,之前用过安信可的ide

出0入228汤圆

发表于 2021-8-26 08:42:41 | 显示全部楼层
arduino,入手最快,开源的项目最多,开源库最多,

推荐PlatformIO+vscode,不过上手要烦一点。

出0入0汤圆

 楼主| 发表于 2021-8-26 09:11:26 | 显示全部楼层
wxws 发表于 2021-8-26 08:42
arduino,入手最快,开源的项目最多,开源库最多,

推荐PlatformIO+vscode,不过上手要烦一点。 ...

我刚试了,直接用vscode的arduino插件也能编译,简单一点,platformIO不科学上网太慢了。不过想代码补全还需要要添加不少路径

出0入0汤圆

 楼主| 发表于 2021-8-26 09:36:38 | 显示全部楼层
nade 发表于 2021-8-26 08:41
至今没玩过arduino这些个,之前用过安信可的ide

安信可ide就是我说的sdk吧?操作很灵活,功能很强大,缺点是可以参考的项目太少了,哎,纠结

出0入25汤圆

发表于 2021-8-26 10:53:26 | 显示全部楼层
我用乐鑫官方的RTOS开发环境。

出0入25汤圆

发表于 2021-8-26 11:10:14 | 显示全部楼层
参考:
    https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/
    https://blog.csdn.net/wutongpro/article/details/109902462
    https://blog.csdn.net/u011238374/article/details/104331573


建立乐鑫官方RTOS开发环境步骤,精简下来就是:

1. 下载编译环境
    https://dl.espressif.com/dl/esp3 ... lchain-20181001.zip
    解压释放到磁盘根目录,原压缩包带路径msys32

2. 下载工具链
    https://dl.espressif.com/dl/xten ... sp-2020r3-win32.zip
    解压释放到msys32\opt

3. 配置.bashrc路径
    执行msys32\mingw32.exe,启动编译环境
    msys32\home\xxxxx\.bashrc, 文件末尾添加
    export IDF_PATH="$HOME/esp/ESP8266_RTOS_SDK"
    export PATH="$PATH:/opt/xtensa-lx106-elf/bin"

4. 克隆ESP8266_RTOS_SDK
    在编译环境内,建立文件夹~/esp,并进入
    执行后面命令克隆SDK: git clone --recursive https://github.com/espressif/ESP8266_RTOS_SDK.git
        镜像站更快:
        git clone --recursive https://github.com.cnpmjs.org/espressif/ESP8266_RTOS_SDK.git
        git clone --recursive https://hub.fastgit.org/espressif/ESP8266_RTOS_SDK.git

5. 安装所需的Python包
    在编译环境内执行 python -m pip install --user -r $IDF_PATH/requirements.txt

到此,环境建立完成。


6. 验证环境,编译hello_world
    配置开发板,进入下载模式(配置IO0=0,然后复位8266即可),用别的串口工具打开串口,再关闭(目的是读空缓冲区)
    复制SDK内的hello_world工程,进入工程配置
        cd ~/esp
        cp -r $IDF_PATH/examples/get-started/hello_world .
        cd ~/esp/hello_world
        make menuconfig

    配置串口波特率(共3处),及SPI接口
        Serial flasher config
            (/dev/ttyUSB0) Default serial port          改为串口,比如/COM3
            Default baud rate (115200 baud)             确认为115200
            Flash SPI mode (QIO)                        改为DIO
            Flash size (2 MB)                           改为开发板实际容量,比如4M
            'make monitor' baud rate (74880 bps)        改为115200
        Component config
            Common ESP-related
                (74880) UART console baud rate          改为115200
    编译下载运行
        make flash monitor
        首次编译会很久。
        编译完成后,配置IO0=0,再复位开发板,shell出现hello_world工程输出信息,完成。Ctrl+]可退出monitor返回编译环境。


建乐鑫官方环境避坑指南:

配置菜单,串口有3个地方配置波特率,都统一配置到相同的有效波特率。

开始下载前
    1. 8266要进入UART下载模式(配置IO0=0,然后复位8266即可)
    2. 进入下载模式后,用别的串口工具读空缓冲区,否则下载器读到垃圾数据引起下载失败。


上面多次提到读空串口缓冲区,是因为我当时是用模块自己搭的硬件环境,没有用串口芯片的控制信号实现自动下载功能,需手动处理。因为串口缓冲区有垃圾数据,下载程序读不到正确的应答信号,始终无法下载,为这个折腾了很久。
淘宝的开发板,一般都支持自动下载,使用串口芯片控制信号和两只三极管实现的,不再需要额外读空串口缓冲区操作。

出0入25汤圆

发表于 2021-8-26 11:17:40 来自手机 | 显示全部楼层
乐鑫SDK里面有不少example可以参考

出0入0汤圆

 楼主| 发表于 2021-8-26 12:05:12 | 显示全部楼层
hecat 发表于 2021-8-26 11:17
乐鑫SDK里面有不少example可以参考

谢谢兄弟!RTOS比NONOS难得多吗?这也是我纠结的一点,NONOS19年就停止更新了,乐鑫现在显然重心放在RTOS上;我不太懂系统,不知道学RTOS会不会很困难?

出0入25汤圆

发表于 2021-8-26 15:34:01 | 显示全部楼层
还好,从简单的慢慢上手。

例程就是很好的教程。

之前我也没用过rtos,这次玩8266才开始接触。还行吧,从例程入手,慢慢补充和完善自己需要的功能,边用边学。

出0入25汤圆

发表于 2021-8-26 15:38:46 | 显示全部楼层
安信可的NONOS IDE1.5.2也试过,我觉得很难用,最后还是选择了RTOS。

出0入25汤圆

发表于 2021-8-26 15:40:52 | 显示全部楼层
安信可NONOS IDE1.5.2

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2021-8-26 15:54:50 | 显示全部楼层
hecat 发表于 2021-8-26 15:40
安信可NONOS IDE1.5.2

再次感谢!那我也试试RTOS

出200入2554汤圆

发表于 2021-8-26 16:48:36 | 显示全部楼层
DB_Cooper 发表于 2021-8-26 15:54
再次感谢!那我也试试RTOS


新手推荐 arduino,最大优势在于开发包标配的 example 示例,有些用法见都没见过。

举个栗子:
我想开发个 webserver 用局域网浏览器控制硬件,直接拷贝个 server 示例改改就能运行了;
然后发现 DHCP 每次都要查 IP 太费劲,翻 API 手册想改静态 IP 时,才发现示例已经集成了 mDNS 服务,直接 esp8266.local 就能动态访问了。

然后在查看 webserver 的各路 handler 代码时,发现 handler 函数体直接写在了另一个函数内部,查阅以后才知道是 C++11 的 lambda 表达式。

出20入0汤圆

发表于 2021-8-26 17:15:57 | 显示全部楼层
hecat 发表于 2021-8-26 11:10
参考:
    https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/
    https://blog.csdn.net ...

1. 8266要进入UART下载模式(配置IO0=0,然后复位8266即可)
------
什么意思?软件控制IO0输出低电平,然后复位8266?我记得要外部拉低复位阿

出0入25汤圆

发表于 2021-8-26 17:24:35 | 显示全部楼层
cantonguy 发表于 2021-8-26 17:15
1. 8266要进入UART下载模式(配置IO0=0,然后复位8266即可)
------
什么意思?软件控制IO0输出低电平,然 ...


硬件置IO0=0并保持,然后复位一下,8266重启,就进UART下载模式了。

出0入25汤圆

发表于 2021-8-26 17:26:32 | 显示全部楼层
t3486784401 发表于 2021-8-26 16:48
新手推荐 arduino,最大优势在于开发包标配的 example 示例,有些用法见都没见过。

举个栗子:

高级,高级!

出0入0汤圆

 楼主| 发表于 2021-8-27 07:43:21 | 显示全部楼层
t3486784401 发表于 2021-8-26 16:48
新手推荐 arduino,最大优势在于开发包标配的 example 示例,有些用法见都没见过。

举个栗子:

谢谢!我总担心arduino这种层层封装的出了问题不好调试,也许我想多了

出200入2554汤圆

发表于 2021-8-27 13:49:29 | 显示全部楼层
DB_Cooper 发表于 2021-8-27 07:43
谢谢!我总担心arduino这种层层封装的出了问题不好调试,也许我想多了

Arduino 是弱化调试器的,出问题了需要自己写 dump 代码来检查问题状态。

不过好在所有的代码都开源,参与编译的 cpp 文件都在自己的硬盘上,找找就能有答案。

出0入4汤圆

发表于 2021-8-27 20:46:41 来自手机 | 显示全部楼层
esp32更强大,同样可以用arduino开发。价格也不贵

出0入0汤圆

发表于 2021-8-29 21:53:28 | 显示全部楼层
不错 学习了

出105入79汤圆

发表于 2021-8-30 03:13:23 | 显示全部楼层
Arduino安装编译最方便,c语言编程
micropython上手也很快。但是运行效率低10-20倍,在8266上写不了大程序因为ram用完了。
官方ide可以搞高级定制应用

出5入8汤圆

发表于 2021-8-31 09:58:22 | 显示全部楼层
esp32 使用官方的idf+vsCode开发+espressif-idf插件,比较方便

出0入0汤圆

 楼主| 发表于 2021-8-31 11:10:46 | 显示全部楼层
diyeyuye 发表于 2021-8-31 09:58
esp32 使用官方的idf+vsCode开发+espressif-idf插件,比较方便

8266能行吗,现在还没有用到esp32的需求

出5入8汤圆

发表于 2021-8-31 15:20:13 | 显示全部楼层
DB_Cooper 发表于 2021-8-31 11:10
8266能行吗,现在还没有用到esp32的需求

用8266,vscode没有espidf的插件,只能自己装个环境来编译,具体可以再csdn上看 半颗心脏 的相关帖子

出0入0汤圆

发表于 2021-8-31 16:09:28 | 显示全部楼层
DB_Cooper 发表于 2021-8-26 09:11
我刚试了,直接用vscode的arduino插件也能编译,简单一点,platformIO不科学上网太慢了。不过想代码补全 ...

被科学上网卡住可就有点说不过去了……如果你的编辑器里没有代码补全,大概率是你依赖库没有装完整,如果PIO插件和项目依赖包都装完了的话,PIO会帮你把所有路径都加进intellisense的,编辑体验和一般的Modern IDE(补全、跳转、xref等)差不多。

出0入224汤圆

发表于 2021-8-31 21:40:06 | 显示全部楼层
qwe2231695 发表于 2021-8-30 03:13
Arduino安装编译最方便,c语言编程
micropython上手也很快。但是运行效率低10-20倍,在8266上写不了大程序 ...

论坛的墨水屏项目用Arduino开发的,试了几次,每次下载程序都很痛苦啊  micropython要方便得多

出105入79汤圆

发表于 2021-8-31 22:10:56 | 显示全部楼层
yyts 发表于 2021-8-31 21:40
论坛的墨水屏项目用Arduino开发的,试了几次,每次下载程序都很痛苦啊  micropython要方便得多 ...

是GCC+脚本串口下载,编译加下载要15-20秒一次。

出0入224汤圆

发表于 2021-9-1 10:39:56 | 显示全部楼层
qwe2231695 发表于 2021-8-31 22:10
是GCC+脚本串口下载,编译加下载要15-20秒一次。

墨水屏项目,光编译要30秒左右,就算只改一行代码,或者一行没动,编译一次都要这么长时间(只是编译,不含下载)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出105入79汤圆

发表于 2021-9-1 14:23:27 | 显示全部楼层
30秒+ ,的确不太方便了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-16 12:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表