[已解决]关于NVS使用的困惑

ming191
Posts: 46
Joined: Mon May 31, 2021 6:27 am

[已解决]关于NVS使用的困惑

Postby ming191 » Wed Jun 23, 2021 3:11 am

1.如何清除已有变量,这个变量已经存在了NVS_FLASH当中,使用nvs_flash_erase吗?
第一步:我测试了如果main 函数只有一个函数,nvs_flash_erase,然后再重新初始化nvs_flash_init。
第二步:删除nvs_flash_erase,重新编译原来的代码,我发现原来存在在表的变量依然存在,没有删除。
2.串口初始化确实对nvs 的打印输出有影响,虽然不知道为什么,一旦编译uart的init ,就会对nvs的打印输出有影响?(nvs里面的打印没有完全打印就结束了。)

上述例子,我做过好多次测试,确认无误。
Attachments
gatt_server.rar
(443.01 KiB) Downloaded 432 times
Last edited by ming191 on Thu Jun 24, 2021 8:49 am, edited 1 time in total.

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: 关于NVS使用的困惑

Postby ESP_Gargamel » Wed Jun 23, 2021 6:48 am

1. 可以使用 nvs_erase_key 清除,需要 nvs_commit 一下
2. 因为你后面重新配置了 uart,你可以把串口终端设置成 9600 波特率,重启板子,就能看到打印,或者你 uart_wait_tx_done 等打印完。但建议你用另外一个 uart 口做通信,uart0 还是做 log 输出。

ming191
Posts: 46
Joined: Mon May 31, 2021 6:27 am

Re: 关于NVS使用的困惑

Postby ming191 » Wed Jun 23, 2021 10:44 am

1.谢谢你,这个我重新实验了。可以。原来earse flash 还要 commit..例程里面没有强调,因为earse 之后就马上init。
2.这里我还是有两个不明白的地方,第一:就是你说我一个串口做通信,另个一个uart做打印?esp32c3只有一个串口,怎么可以实现到这样。第二:关于uart的init影响了nvs打印的输出,你说我后面重新配置了串口,我也知道,但是我全部输出完串口数据再配置串口,为什么会有影响?他们同步的吗?

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: 关于NVS使用的困惑

Postby ESP_Gargamel » Thu Jun 24, 2021 1:20 am

1、ESP32-C3 有两个 UART,看 datasheet
2、你调用 ESP_LOGI 其实并没有发送完,数据还有可能在 UART TX buffer 里,所以得等会

ming191
Posts: 46
Joined: Mon May 31, 2021 6:27 am

Re: 关于NVS使用的困惑

Postby ming191 » Thu Jun 24, 2021 2:13 am

再次感谢你,原来ESP32C3有两个串口,我之前看原来图,就标了一个uart0,可能我水平低的缘故,没有发现,我后面测试一下,定义其他IO做串口,看看效果。非常感谢。

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: 关于NVS使用的困惑

Postby ESP_Gargamel » Thu Jun 24, 2021 2:16 am

如果问题解决,请修改下标题,前面加上 [已解决]。

Who is online

Users browsing this forum: Baidu [Spider], Google [Bot] and 45 guests