CN / EN
CN / EN

提问

获得支持

您的项目私密技术问题如需获得一对一支持,请点击下方联系我们。

SDK中并未发现NVDS的C文件,该如何建立NVDS的工程 GR551x

已解决

天狼落星

2019-08-09 15:30

我在搭建使用NVDS功能的工程时一直报错,怀疑是没有gr55xx_nvds.c文件,但我在SDK并未发现有这东西

0收藏

0赞成

最佳答案

走进风雨里

2019-08-10 16:32

你好,NVDS初始化、写入和读取代码实现封装在lib库中,所以不存在gr55xx_nvds.c文件。NVDS操作可以参考文档《GR551x开发者指南_V0_92》第2.4.2章节的内容。

使用以下代码可以实现从NVDS中读取本机蓝牙地址的功能,该段代码需要放在nvds_init(NVDS_START_ADDR, NVDS_NUM_PAGE)函数之后,并且要保证初始化函数的执行顺序为hal_flash_init()、nvds_init(NVDS_START_ADDR, NVDS_NUM_PAGE)、ble_stack_init(&m_app_ble_callback, &heaps_table)。

请特别注意0xC000开始的NVDS_TAG_ID已经被工程原始功能占用,请选用其它NVDS_TAG_ID。

代码示例:

使用NVDS读取函数将本机蓝牙地址通过串口打印输出,本机蓝牙地址NVDS Item tag固定为0xC001。

#include <stdio.h>
#include <string.h>
#include "app_log_port.h"
#include "gr55xx_hal.h"
#include "boards.h"
#include "hal_flash.h"
#include "gr55xx_nvds.h"

#define NVDS_ITEM_TAG 0xC001

void nvds_test(void)
{
uint16_t len = 0;
uint8_t addr[6], ret = 0;

len = nvds_tag_length(NVDS_ITEM_TAG);

ret = nvds_get(NVDS_ITEM_TAG, &len, addr);

if( ret == NVDS_SUCCESS )
{
printf("NVDS 0x%X Len = [%d]\r\n", NVDS_ITEM_TAG, len);
printf("NVDS 0x%X Data X:X:X:X:X:X\r\n",
NVDS_ITEM_TAG, addr[5], addr[4], addr[3], addr[2], addr[1], addr[0]);
}
else
{
printf("NVDS get error %d\r\n", ret);
}
}

int main(void)
{
hal_flash_init();
nvds_init(NVDS_START_ADDR, NVDS_NUM_PAGE);

hal_init();

/* Initial printf mode and UART */
app_log_port_init();

nvds_test();

printf("\r\n");
printf("******************************************************\r\n");
printf("* NVDS example. *\r\n");
printf("* *\r\n");
printf("* Config: 115200, 8-bits, 1-stopbit, none *\r\n");
printf("* *\r\n");
printf("* UART0 <-----> UART to USB *\r\n");
printf("* TX(GPIO10) -----> RX *\r\n");
printf("* RX(GPIO11) <----- TX *\r\n");
printf("* *\r\n");
printf("* This sample code will print Bluetooth Address on terminal *\r\n");
printf("******************************************************\r\n");
app_log_port_flush();

printf("\r\nThis example demo end.\r\n");

while(1);
}

PS:如果我的回答能够帮助您解决问题,请将此问题设置为已解决,谢谢。

3条评论

0赞成

1收藏

您的评论

天狼落星

2019-08-12 08:39

一下是工程报错以及工程引用的相关文件



0条评论

0赞成

0收藏

您的评论

登录后可回答问题,请 注册

我们时刻倾听您的声音
联系销售

扫描关注公众号

打开微信,使用“扫一扫”即可关注