本文共 3025 字,大约阅读时间需要 10 分钟。
原创 比特
让我们一起用esp8266做一些好玩的东西吧
一看到标题,是不是就知道我要干什么了,哈哈哈,和很多编程语言一样,先来个hello world。
上节我们说到测试一个工程是:
#拷贝官方的hello world工程cd ~/esp //这个是拷贝到 esp目录下,实际上可以拷贝到任何地方cp -r $IDF_PATH/examples/get-started/hello_world ./#配置工程cd ~/esp/hello_worldmake menuconfig#用USB转串口连接好ESP8266make flash#改变连线,重启后运行make monitor
这样就可以完成了创建工程、配置工程、编译和烧写、查看输出。
OK,大功告成,这就是神鸟凤凰!
如果这样就结束了,也说的过去哈,就是hello world阿,官方例子就是这样。但这不是我的风格,我是要把问题搞清楚的,本着把问题搞清楚的态度,我们看看刚才都干了什么。
创建工程
我们先来看看 $IDF_PATH/examples/get-started/hello_world下面都有什么?
.├── build // 编译的临时目录(可删除)├── CMakeLists.txt // cmake 文件(可删除)├── main│ ├── CMakeLists.txt // cmake 文件(可删除)│ ├── component.mk│ └── hello_world_main.c├── Makefile├── README.md // 说明文件(可删除)├── sdkconfig└── sdkconfig.old // 旧的配置文件(可删除)
为了清楚,我们把暂时不用的文件删除
.├── main // 文件夹(linux叫 目录)│ ├── component.mk // 编译用(但是本文件为空)│ └── hello_world_main.c // 我们的程序├── Makefile // make 命令使用,也是编译用└── sdkconfig // 项目配置文件
删除了多余的文件,看起来清爽多了,看样子我们现在只关心hello_world_main.c(这个文件你可以随意重命名)文件即可。
官方给的例子里面有个
void app_main()
函数,和我们平时学习C语言编程以main()函数开始不同,这里以app_main()开始,没有区别,就是个开始函数(至于为什么开始的函数是这些,暂时先不说了,以后有机会再说)。
我看官方给的hello world 有些复杂,把多余的删了:
void app_main(){ printf("Hello world!\n");}
对嘛,这才有点像hello world的样子,哈哈哈哈
这应该是最简单的了。
别担心,删掉的那些下节集中介绍。
配置工程
配置工程不就下面这样,有什么说的?
#配置工程cd ~/esp/hello_worldmake menuconfig
先看看配置界面,这和linux内核的配置界面是一样的,
也许有人不会用,其实很简单:
只用上下左右按键、空格和回车键即可完成配置,试一试就会发现很简单了。
最下面一行命令(<select>等)选择要干什么,主界面是要配置的内容,上面就是操作提示,包括:
-
右边有箭头表示按回车键可进入
-
左边中括号([ ])代表这是一个选项,空格键切换选中([*])或不选([ ])
-
其他需要选择或填写的内容
主要还是看看常用配置吧
SDK tool configuration ---> //工具链配置Bootloader config ---> //bootloaderSerial flasher config ---> //串口flash烧写配置Partition Table ---> //分区表Compiler options ---> //编译配置Component config ---> //其他模块配置
现阶段我们主要关心Serial flasher config, 烧写相关配置
(/dev/ttyUSB0) Default serial port //串口端口,这是USB转串口0Default baud rate (115200 baud) ---> //串口比特率,改成921600可加速烧写[*] Use compressed upload //启用压缩上传Flash SPI mode (QIO) ---> //SPI 模式Flash SPI speed (40 MHz) ---> //SPI速度Flash size (2 MB) ---> //Flash大小选择Before flashing (Reset to bootloader) ---> After flashing (Hard reset after flashing) ---> 'make monitor' baud rate (74880 bps) ---> //监视器波特率
编译和烧写
很明显,这是2个步骤,而之前只是一个命令
#用USB转串口连接好ESP8266,GPIO0接地make flash
其实make flash 可分为2个步骤。
编译的话make就可以了,直接在hello world目录执行make命令,就可以看到编译很多东西,最后生成我们需要的文件(上节说的那三个:bootoader、分区表、APP的二进制文件)用于烧写。
看看结果,而且会提示你怎样烧写(显示有删减)
python XXX/esptool.py --chip esp8266 // 下面这些信息是不是很熟悉--port /dev/ttyUSB0 --baud 115200 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size 2MB 0x0000 XXX/bootloader.bin //这三个是不是也很熟悉0x10000 XXX/hello-world.bin 0x8000 XXX/partitions.bin
有了上面的命令你就可以随意烧写了
其实你可以 make help查看更多有用的工具,其中
make erase_flash
擦除整个flash是不是很多人都需要呢?
查看输出
#GPIO0置空,重启后运行make monitor
其实没什么说的,注意GPIO0即可,这其实和串口调试助手类似,而且我感觉还不如串口调试助手功能丰富,就是在命令行运行比较方便。
退出monitor :Ctrl+]
好了,这就是hello world了!
哎,单片机的hello world竟然没点亮一个LED,失败!
----------我是比特,一个想把问题搞清楚的青年才俊----------
公众号:find_xiaohei
及时更新,博客不定期更新转载地址:https://blog.csdn.net/yyyyyyyyyywwwwwwwwww/article/details/104403496 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!