[8266]3. hello world
发布日期:2021-06-29 02:31:56 浏览次数:2 分类:技术文章

本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:[8266]小黑固件正式发布
下一篇:[8266]2.开发之前要了解的事实

发表评论

最新留言

很好
[***.229.124.182]2024年04月14日 06时36分06秒