建设网站是否需要一个主机,软件编程和网站开发差别,邢台企业做网站多少钱,网站标题优化 英文#x1f680; 优质资源分享 #x1f680;
学习路线指引#xff08;点击解锁#xff09;知识定位人群定位#x1f9e1; Python实战微信订餐小程序 #x1f9e1;进阶级本课程是python flask微信小程序的完美结合#xff0c;从项目搭建到腾讯云部署上线#xff0c;打造一… 优质资源分享
学习路线指引点击解锁知识定位人群定位 Python实战微信订餐小程序 进阶级本课程是python flask微信小程序的完美结合从项目搭建到腾讯云部署上线打造一个全栈订餐系统。Python量化交易实战入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统
1. 前言
因为ESP8266/ESP32这个开发环境没少折腾是真没见过这么难搞又不清晰的环境。
简单开发可以使用Arduino IDE 这个平台还是挺好的。开发使用Arduino的函数库很高效。 不过我还是不习惯比如示例中binker demo的LED_BUILTIN都不能跳转到定义不喜欢。现在来正经搭建一个8266的环境。其实挺简单的只是一直没找对地方。
在其他博主那发现官方文档 ESP8266_RTOS_SDK Programming Guide 我是个对知识的检索有强迫症的人不知道从哪找到的这个链接就浑身不舒服最后找到在官网文档下 esp8266分类下的入门指南链接。 搭建开发环境的具体步骤是工具链、获取SDK、配置如果想用IDE的话还应有IDE的配置。
开发过程的四个步骤是
配置项目并编写代码编译项目并链接以构建应用程序烧录到ESP8266调试和监控
2. 开发环境的搭建
2.1 工具链获取
Windows 一体化工具链和 MSYS2 zip 文件
https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20181001.zip
*本来打算用git bash 自带的mingw呢结果make阶段提醒要使用 mingw32下的msys。*结果治好乖乖用官网提供的一体化工具了。
之后的命令都是在 MINGW32.exe 下执行的。
2.2 SDK克隆
Copygit clone --recursive https://github.com/espressif/ESP8266\_RTOS\_SDK.git
一定要加上 recursive 循环下载子模块我没有加结果后面会在make的时候才下载其他库还下载不下来。
我加上这个参数后发现下载的是特别慢挂了工具都慢等了好久终于下载完成。另一个选择是用gitee下载SDK不用recursive下载子模块再用一个工具下载子模块参考用乐鑫国内镜像构建ESP8266_RTOS_SDK开发环境
实在想不通乐鑫看重海外市场把国内生态怎么做得不咋好。
2.3 配置
注工具链使用环境变量 IDF_PATH 访问SDK目录在 ~/.bash_profile 末尾添加
Copyexport IDF_PATHG:/IOT/ESP8266/ESP8266\_RTOS\_SDK
使用source命令使之生效
Copysource ~/.bash_profile
下载其他工具
ESP8266编译和烧录基于Python实现需要安装python的库。
Copy$ python -m pip install -r $IDF_PATH/requirements.txt
到这里环境配置就完成了。不不不
ESP8266专有工具链设置
一体化环境是为了ESP32设置的ESP8266还需要下载特定的工具链这个官网文档或者RTOS说明中也有链接
v8.4.0 https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-win32.zip 如果您还在使用旧版本 SDK( 3.0)请使用工具链 v4.8.5如下 https://dl.espressif.com/dl/xtensa-lx106-elf-win32-1.22.0-88-gde0bdc1-4.8.5.tar.gz 下载第一个之后解压。然后.bash_profile中添加环境变量
Copyexport PATH$PATH:/G/IOT/ESP8266/xtensa-lx106-elf/bin
如果这里没配置ESP8266专有工具链make配置后会出现提醒
GENCONFIG makextensa-lx106-elf-gcc命令未找到
3. 开发过程
项目配置
将sdk中的examples/git-startd/hello_world复制出去用mingw32执行到该目录下运行
Copymake menuconfig
会看到下面界面做一些配置串口波特率等 烧录
只设置了端口号和flash本来是4M烧录时候报错设置为2M成功了之后再使用编译和烧录命令
Copymake flash
报错
Copy子模组 components/json/cJSONhttps://github.com/DaveGamble/cJSON.git未对路径 components/json/cJSON 注册
正克隆到 /g/IOT/ESP8266/ESP8266\_RTOS\_SDK/components/json/cJSON...
fatal: unable to access https://github.com/DaveGamble/cJSON.git/: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
fatal: 无法克隆 https://github.com/DaveGamble/cJSON.git 到子模组路径 /g/IOT/ESP8266/ESP8266\_RTOS\_SDK/components/json/cJSON
克隆 components/json/cJSON 失败。按计划重试
正克隆到 /g/IOT/ESP8266/ESP8266\_RTOS\_SDK/components/json/cJSON...
这是因为从github下载一些模块没有成功网上有两种解决方案。一是手动下载并放到对应目录二是调大http.postBuffer的值。我用了第一种解决编译时又报另外一个错遂用第二种。发现还是不行去查为什么会却库发现克隆SDK 时没有加 recursive参数循环下载子模块。
烧录成功后。
可以用make monitor监视串口 hello_world就打印出了CPU核数外部Flash大小2M。
用make monitor 看数据是正常的用其他串口工具看到的是乱码原来这里默认的波特率不是115200是74800。修改波特率方法 到这里环境就搭建完成了。明天再去公司搭一套整理记录一下问题。
4. 使用VSCODE做开发环境
终端和编译
vscode右键工作区→在集成终端打开替换为mingw32。需要更改用户设置或者当前工作区的设置在.vscode/settings.json
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T4I1kpGE-1654922870353)(https://secure2.wostatic.cn/static/hjzfcGNFmQfiYPfULP5uMG/image.png)]
Copy terminal.integrated.shell.windows:D:\\Software\\esp32\_win32\_msys2\_environment\_and\_toolchain-20181001\\msys32\\msys2\_shell.cmd,terminal.integrated.shellArgs.windows: [-defterm, -mingw32, -no-start, -here]
make menuconfig时乱码
文件\msys32\etc\profile.d\esp32_toolchain.sh 新增语言配置zh_Cn也行的
Copyexport LANGen\_Us
之后就可以在终端下流畅地使用make了。
库设置
现在vscode下看代码是没有关联库的所以函数和头文件都跳不了 头文件分为两类如图所示一类是系统库stdio.h等一类就是 RTOS中的库。
首先增加配置文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mG7B6F9T-1654922870355)(https://secure2.wostatic.cn/static/3sq2WKRYxtgJG9gmjcvhD4/image.png)]
在 incluPath中添加这两类库我的配置如下第一个是默认的第二个是RTOS库后面几个是系统gcc使用的库两个星号表示目录递归查找
CopyincludePath: [${workspaceFolder}/**E:/labs/esp8266/ESP8266\_RTOS\_SDK/components/**,E:/labs/esp8266/xtensa-lx106-elf/xtensa-lx106-elf/include/c/8.4.0/**,E:/labs/esp8266/xtensa-lx106-elf/xtensa-lx106-elf/sys-include ,E:/labs/esp8266/xtensa-lx106-elf/xtensa-lx106-elf/include, E:/labs/esp8266/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/8.4.0/include
],
想要查看gcc包含的文件通过命令gcc -v -E -x c - 因为make时发现gcc使用的是Toolchain path: /E/labs/esp8266/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc,所以应该使用/E/labs/esp8266/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc -v -E -x c - 查看引入库位置所需的是下面红框所示库目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hw5IB3EB-1654922870356)(https://secure2.wostatic.cn/static/3hVriazaA83Edjpjzjyefg/image.png)]
这样就可以跳转了。
总结
环境搭建折腾了好久。得总结一下给迷茫的其他人一些指引。
需要的软件和库msys2工具链也可以自己安装但还是建议用官方提供的、8266特有工具链、RTOS的库克隆很麻烦其实需要的几个组件可以一一下载并放到指定目录即可。配置就是把8266和RTOS库的路径配置到环境变量中.bash_profile。接着烧录运行即可。现在看起来不算麻烦但过程中真折磨人。
参考
搭建 ESP8266 开发环境windows用乐鑫国内镜像构建ESP8266_RTOS_SDK开发环境亿佰特E103-W01 ESP8266EX UART串口转WiFi模块ESP32开发 解决VS Code 中 make menuconfig 乱码问题2 个步骤为 VSCode 配置工程头文件路径[解决]VSCode在Linux下导入c语言头文件警告