注册 登录
查看: 218|回复: 2

使用f_write和f_read函数怎么读写整型数据?

[复制链接]
发表于 2017-6-25 21:32:43 | 显示全部楼层 |阅读模式
  1. void img_sd_save1(int * imgaddr,uint32 size)
  2. {
  3.     int   vcanres;
  4.     uint32 mybw;
  5.     static uint8 time = 0;
  6.     //uint32 size = CAMERA_SIZE;

  7.     if(vcansrc.fs != 0)
  8.     {
  9.         vcanres = f_write(&vcansrc, imgaddr, size ,&mybw);

  10.         if(vcanres != FR_OK)
  11.         {
  12.             f_close(&vcansrc);
  13.             vcansrc.fs = 0;
  14.         }
  15.         if(SD_save_flag==1)
  16.         {
  17.           f_sync(&vcansrc);
  18.           SD_save_flag=2;
  19.           img_sd_exit();
  20.         }
  21.     }
  22. }
  1. void img_sd_read1(int * dst, uint32 size, uint32 read_imgaddr)
  2. {
  3.     uint32 sizetmp;
  4.     f_lseek(&vcansrc, read_imgaddr);
  5.     f_read (&vcansrc, dst, size, &sizetmp);   //读取
  6. }
  1. img_sd_save1(date_read_buff,sizeof(date_save_buff));
  1. img_sd_read1( date_read_buff, sizeof(date_read_buff) , zhizhen );
上面是我改的保存和读取的例程,我把数组保存的都是int类型的10,但是读取的时候数据就变成这样

如果我用uint8类型的数组读取,感觉就是正常的数,这样的,我在哪出现错误了呢?怎样操作才能正常读取和写入整型数据?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2017-6-25 21:35:47 | 显示全部楼层
上面你的图片是以int类型命名读取的数据,下面的图片是以uint8类型命名数组读取的数据。存的时候都是以int类型数组存的
回复 支持 反对

使用道具 举报

发表于 2017-6-26 10:38:08 | 显示全部楼层
在单片机的内存里,不管你用什么类型保存,最终都得转换成1个个 字节,就是uint8_t 。你不熟悉类型转换的话,就直接用uint8_t 读取数据到缓冲区,然后指针方式来解码。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部