noridic 14.2sdk fstorage

nordic的flash存储功能,还有点啃,12版本sdk使用比较方便,后面换了14.2sdk  提供的接口没有了   使用官方sdk似乎有点问题 ,现在总结一下flash存储    基于14.2sdk   主要是存储之前,一定要擦除,并且等待存储完成  这样才能保证正常存储

//写入
void  date_flash_storage(uint32_t to_address,char* p_buf)
{
  ret_code_t ret;
   //擦除
  ret = nrf_fstorage_erase(
    &fstorage,   /* The instance to use. */
    to_address,     /* The address of the flash pages to erase. */
    1, /* The number of pages to erase. */
    NULL            /* Optional parameter, backend-dependent. */
   );
  APP_ERROR_CHECK(ret);
 
   ret  = nrf_fstorage_write(&fstorage, to_address, p_buf, 12, NULL);
     //等待存储完成
   while(nrf_fstorage_is_busy(&fstorage))
   {
     (void) sd_app_evt_wait();
   }
}

//读取
char*  date_flash_read(uint32_t from_address)
{
  ret_code_t ret;
 
  memset(m_date_value,0,12) ;
 
  ret  = nrf_fstorage_read(&fstorage, from_address, m_date_value, 12);

  //send_uart_string(m_date_value,10) ;
  return  m_date_value ;
}

其中 from_address , to_address 调用的时候传参,保持一致即可

比如:

  date_flash_storage(0x73000,"hello") ;
  send_uart_string(date_flash_read(0x73000),12) ;

猜你喜欢

转载自blog.csdn.net/weixin_42568866/article/details/86472713
SDK