1.如何清除已有变量,这个变量已经存在了NVS_FLASH当中,使用nvs_flash_erase吗?
第一步:我测试了如果main 函数只有一个函数,nvs_flash_erase,然后再重新初始化nvs_flash_init。
第二步:删除nvs_flash_erase,重新编译原来的代码,我发现原来存在在表的变量依然存在,没有删除。
2.串口初始化确实对nvs 的打印输出有影响,虽然不知道为什么,一旦编译uart的init ,就会对nvs的打印输出有影响?(nvs里面的打印没有完全打印就结束了。)
上述例子,我做过好多次测试,确认无误。
[已解决]关于NVS使用的困惑
[已解决]关于NVS使用的困惑
- Attachments
-
- gatt_server.rar
- (443.01 KiB) Downloaded 545 times
Last edited by ming191 on Thu Jun 24, 2021 8:49 am, edited 1 time in total.
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: 关于NVS使用的困惑
1. 可以使用 nvs_erase_key 清除,需要 nvs_commit 一下
2. 因为你后面重新配置了 uart,你可以把串口终端设置成 9600 波特率,重启板子,就能看到打印,或者你 uart_wait_tx_done 等打印完。但建议你用另外一个 uart 口做通信,uart0 还是做 log 输出。
2. 因为你后面重新配置了 uart,你可以把串口终端设置成 9600 波特率,重启板子,就能看到打印,或者你 uart_wait_tx_done 等打印完。但建议你用另外一个 uart 口做通信,uart0 还是做 log 输出。
Re: 关于NVS使用的困惑
1.谢谢你,这个我重新实验了。可以。原来earse flash 还要 commit..例程里面没有强调,因为earse 之后就马上init。
2.这里我还是有两个不明白的地方,第一:就是你说我一个串口做通信,另个一个uart做打印?esp32c3只有一个串口,怎么可以实现到这样。第二:关于uart的init影响了nvs打印的输出,你说我后面重新配置了串口,我也知道,但是我全部输出完串口数据再配置串口,为什么会有影响?他们同步的吗?
2.这里我还是有两个不明白的地方,第一:就是你说我一个串口做通信,另个一个uart做打印?esp32c3只有一个串口,怎么可以实现到这样。第二:关于uart的init影响了nvs打印的输出,你说我后面重新配置了串口,我也知道,但是我全部输出完串口数据再配置串口,为什么会有影响?他们同步的吗?
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: 关于NVS使用的困惑
1、ESP32-C3 有两个 UART,看 datasheet
2、你调用 ESP_LOGI 其实并没有发送完,数据还有可能在 UART TX buffer 里,所以得等会
2、你调用 ESP_LOGI 其实并没有发送完,数据还有可能在 UART TX buffer 里,所以得等会
Re: 关于NVS使用的困惑
再次感谢你,原来ESP32C3有两个串口,我之前看原来图,就标了一个uart0,可能我水平低的缘故,没有发现,我后面测试一下,定义其他IO做串口,看看效果。非常感谢。
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: 关于NVS使用的困惑
如果问题解决,请修改下标题,前面加上 [已解决]。
Who is online
Users browsing this forum: No registered users and 158 guests