diff --git "a/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Todo_hzh.txt" "b/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Todo_hzh.txt" index 47e5be1b2dfddf6002a12a9561b9cb03464b968f..b5afb454eba11cf7d51386cf9ec75469df115b04 100644 --- "a/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Todo_hzh.txt" +++ "b/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Todo_hzh.txt" @@ -1,59 +1,25 @@ -[2022年1月16日 周日] -[任务简述] [10点15分] -1. 配置SI4的环境,将ESP8266_RTOS_SDK导入并实现关联 -2. 外设调用:GPIO、Uart,了解pwm,通过外设调用,对SDK各个模块的调用有基本认识,复习rtos -3. 连接wifi -4. 连接MQTT服务器 -[2022年1月15日 周六] -[任务简述] [09点15分] -1. 搭建ESP8266_RTOS_SDK的开发环境 -2. 尝试8266的编译、烧录和测试 -[反馈] [22点51分] -1. 环境搭好了 - i: 下载环境:https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20190611.zip, - ii: 下载SDK:git clone --recursive https://github.com/espressif/ESP8266_RTOS_SDK.git - iii: 下载编译工具链:https://github.com/espressif/ESP8266_RTOS_SDK 中的markdown介绍中,找到"get toolchain"项点击下载,下完之后记得用winRar,用管理员权限解压,二者缺一不可。 - iv: 下好的环境相当于打包好的虚拟机,解压之后有个"msys32"文件夹,就相当于虚拟机桌面,即"PATH",将SDK放在"\msys32\home\Magnetic"之下 - v: 将解压好的工具链"xtensa-lx106-elf"文件夹放到"\msys32\opt"文件夹下 - vi: 配置路径,打开子文件夹\etc\profile.d里面的 esp32_toolchain.sh文件,最好用notepad++这些编程编辑器打开,不用用记事本打开! - export PATH="/opt/xtensa-lx106-elf/bin:$PATH" - export IDF_PATH="/home/Magnetic/ESP8266_RTOS_SDK" - vii: 运行demo:"ESP8266_RTOS_SDK"文件夹下新建目录"MyProject",从"example"文件夹中拿出demo工程"hello_world"放入,运行终端 - ix: make指令集 - a: make menuconfig 配置,Serial记得将端口名字改为设备的串口号如COM5,flash为4M - b: make all 表示仅仅编译项目不烧录,make后面加-j启用并行编译多个文件 - c: make flash 根据我们刚刚的配置信息编译和烧录到板子 - d: make monitor 打开乐鑫提供的串口查看工具 - e: make flash monitor 要一次上传并监视输出,可以运行 - f: make erase_flash flash 擦除所有内容,然后重新刷新新应用,引导加载程序和初始化数据仓 -2. 配置Vscode - i: 在Vscode中打开文件夹"ESP8266_RTOS_SDK",ctrl+shift+p 全局设置在.json中编辑 - { - "window.zoomLevel": 1, - "editor.formatOnType": true, - "[cpp]":{ - "editor.quickSuggestions": { - "other": true, - "comments": true, - "strings": true - } - }, - "[c]":{ - "editor.quickSuggestions": { - "other": true, - "comments": true, - "strings": true - } - }, - "workbench.colorTheme": "Monokai", - "workbench.iconTheme": "vs-minimal", - //E:\Espressif\Esp32\msys32 - "terminal.integrated.shell.windows": "E:\\Espressif\\ESP32\\msys32\\msys2_shell.cmd", //改成自己的 - "terminal.integrated.shellArgs.windows": ["-defterm", "-mingw32", "-no-start", "-here"] - } - ii: 右键hello_world在终端打开,执行make指令 -3. 找不到make可能得安装cmake和mingw32并且添加到系统环境 +[2022年1月17日 周一] +[上周总结] [09点41分] +1. 代码完成了编译和烧写,可以回boot,掉电虽然电压不稳定但是无关大局。 +2. 完成了ESP8266的RTOS移植,实现了8266在win10上开发的环境搭建和工具链接入。实现了联网和外设调用 +[本周任务] [09点44分] +1. 搭建ESP8266和NS3108的简易终端 + 周一: + i:完成串口接收中断模型的搭建,验证串口收发 + ii:实现两块ESP的串口通信 + 周二: + i:在OFFICE桌面搭建ESP的sdk环境 + i:完成ESP和NS3108的串口通信 + ii:实现ESP和YJC本地MQTT服务器的连接 + 周三:实现ESP8266和NS3108简易终端和树莓派网关的通信 + 周四、周五 + i:根据需求更改固件 + ii:学习算法库用户手册,准备调用加密模块 +[任务简述] [09点56分] +1. 完成NS3108的串口中断模型的搭建,验证串口收发 +2. 简单调用NS3108的外设 + [2022年1月14日 周五] [任务简述] [09点45分] diff --git "a/\347\241\254\344\273\266\345\237\272\347\241\200/nvs.txt" "b/\347\241\254\344\273\266\345\237\272\347\241\200/nvs.txt" new file mode 100644 index 0000000000000000000000000000000000000000..78ea8da75a9c55d66188e8503cafe97952bc48bf --- /dev/null +++ "b/\347\241\254\344\273\266\345\237\272\347\241\200/nvs.txt" @@ -0,0 +1,43 @@ +学习一下NVS +NVS: Non-volatile storage , 即将数据存储到 flash 中, 掉电或重启后数据仍然存在, flash类似于 PC 上磁盘. + +操作: + 打开文件(nvs_open) + 写文件(nvs_set_xxx) + 保存文件(nvs_commit) + 关闭文件(nvs_close) + 打开文件(nvs_open) + 读取文件(nvs_get_xxx) + 关闭文件(nvs_close) + +内存地址:0x9000--0xD000 + +不管读写操作,都必须打开一个数据表(如果不存在系统会创建),打开后会有一个句柄返回来!之后的操作都会用这个句柄来操作数据! +写操作,需要传入句柄和要写的类型的数值指针!以及您的键的名字和数值! +读操作,需要传入句柄和要读的类型的指针!以及您的键的名字和要存储返回的类型变量的指针! +https://www.cnblogs.com/corehouse/p/13770809.htmlgit + //NVS操作的句柄,类似于 rtos系统的任务创建返回的句柄! + nvs_handle mHandleNvs; + + //注意int8_t的取值范围,根据自身的业务需求来做保存类型 + int8_t nvs_i8 = 11; + + //打开数据库,打开一个数据库就相当于会返回一个句柄 + if (nvs_open(TB_SELF, NVS_READWRITE, &mHandleNvs) != ESP_OK) + { + ESP_LOGE(TAG, "Open NVS Table fail"); + } + + //保存一个 int8_t + esp_err_t err = nvs_set_i8(mHandleNvs, FILED_SELF_i8, nvs_i8); + + if (err != ESP_OK) + ESP_LOGE(TAG, "Save NVS i8 error !!"); + else + ESP_LOGI(TAG, "Save NVS i8 ok !! nvs_i8 = %d ", nvs_i8); + + //提交下!相当于软件面板的 “应用” 按钮,并没关闭面板! + nvs_commit(mHandleNvs); + + //关闭数据库,关闭面板! + nvs_close(mHandleNvs); \ No newline at end of file