false

false

EN

SDK中并未发现NVDS的C文件,该如何建立NVDS的工程 【已解决】

天狼落星

2019-08-09 15:30:18

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

热门 最新

2个回答
最佳答案

高兴就好

2019-08-10 16:32:39

你好,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:如果我的回答能够帮助您解决问题,请将此问题设置为已解决,谢谢。    

2条评论

您的评论

天狼落星

2019-08-12 08:39:09

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



0条评论

您的评论

共2条记录
1

您的回答