在我的MacBook上捣鼓ESP8266
2023-04-18 16:41:49 时间
周三是我们的篮球日,打篮球后总是会有些兴奋,然后就容易睡不着,额,睡不着就拿我的ESP8266开发板出来捣鼓一下。
先下载编译工具链
https://github.com/espressif/ESP8266_RTOS_SDK
下载sdk
git clone https://github.com/espressif/ESP8266_RTOS_SDK.git
配置编译链环境变量
下面的目录路径根据自己的实际情况设定
PATH=$PATH:/System/Volumes/Data/Users/crisqifawei/Documents/work/ESP8226/Toolchain/xtensa-lx106-elf/bin
配置sdk的环境变量
下面的目录路径根据自己的实际情况设定
export IDF_PATH=/System/Volumes/Data/Users/crisqifawei/Documents/work/ESP8226/ESP8266_RTOS_SDK
如果想上面修改重启后依然生效,就需要修改
vim ~/.bash_profile
source ~/.bash_profile
menuconfig配置开发板信息
cd /System/Volumes/Data/Users/crisqifawei/Documents/work/ESP8226/ESP8266_RTOS_SDK/examples/get-started/hello_world
make menuconfig
注意串口号在Macbook上不一样,需要在config里面修改下
1、修改烧录串口设备
名字是你用usb连接板子后,在设备文件里面会看到的
2、修改printf 输出串口配置
这里需要把串口的波特率修改成115200,要不然printf,当然了,你也可以不修改
我这里是为了让我的输出波特率和串口下载的波特率一致。
Component config --->
Common ESP-related --->
(115200) UART console baud rate
编译
make all 会全部编译一次
但是你要烧录到时候,执行make flash的时候,它还会编译一次
所以如果你板子拿到了,直接来一次make flash也不是不可以
编译过程中出错了,按照提示安装需求的依赖就可以
/Users/crisqifawei/opt/miniconda3/bin/python -m pip install --user -r /System/Volumes/Data/Users/crisqifawei/Documents/work/ESP8226/ESP8266_RTOS_SDK/requirements.txt
程序代码
代码路径
ESP8266_RTOS_SDK/examples/get-started/hello_world
/* Hello World Example
This example code is in the Public Domain (or CC0 licensed, at your option.)
Unless required by applicable law or agreed to in writing, this
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.
*/
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_spi_flash.h"
void app_main()
{
printf("Hello world!
");
/* Print chip information */
esp_chip_info_t chip_info;
esp_chip_info(&chip_info);
printf("This is ESP8266 chip with %d CPU cores, WiFi, ",
chip_info.cores);
printf("silicon revision %d, ", chip_info.revision);
printf("%dMB %s flash
", spi_flash_get_chip_size() / (1024 * 1024),
(chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
for (int i = 100000; i >= 0; i--) {
printf("Restarting in %d seconds...
", i);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
printf("Restarting now.
");
fflush(stdout);
esp_restart();
}
串口输出
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击