OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5636|回复: 17

读卡器的实验的裁剪,我只想保留,SPI_FLASH的部分,还需要修改那些地方?

[复制链接]

25

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-1-4
在线时间
0 小时
发表于 2013-9-17 10:30:44 | 显示全部楼层 |阅读模式

原子哥,我想把读卡器的不部分只保留,SPI_FLASH的部分,我也屏蔽了对SD卡的操作,现在插上USB的还是显示2个盘符,不知道还要改那些地方提示下。
u16 MAL_Init(u8 lun)
{
  u16 status = MAL_OK; 
  switch (lun)
  {
//    case 0:      
//      break;     
    case 1:      
      break;   
    default:
      return MAL_FAIL;
  }
  return status;
}
  
/*******************************************************************************
* Function Name  : MAL_Write
* Description    : Write sectors
* Input          : None
* Output         : None
* Return         : 0,OK
                   1,FAIL
*******************************************************************************/
u16 MAL_Write(u8 lun, u32 Memory_Offset, u32 *Writebuff, u16 Transfer_Length)
{  
 u8 STA;
 switch (lun)
 {
//  case 0:     
//   STA=SD_WriteDisk((u8*)Writebuff, Memory_Offset>>9, Transfer_Length>>9);      
//   break;        
  case 1:  
   STA=0;
   SPI_Flash_Write((u8*)Writebuff, Memory_Offset, Transfer_Length);      
   break;
  default:
   return MAL_FAIL;
 }
 if(STA!=0)return MAL_FAIL;
 return MAL_OK;
}

/*******************************************************************************
* Function Name  : MAL_Read
* Description    : Read sectors
* Input          : None
* Output         : None
* Return         : 0,OK
                   1,FAIL
*******************************************************************************/
u16 MAL_Read(u8 lun, u32 Memory_Offset, u32 *Readbuff, u16 Transfer_Length)
{
 u8 STA;
 switch (lun)
 {
//  case 0:     
//   STA=SD_ReadDisk((u8*)Readbuff, Memory_Offset>>9, Transfer_Length>>9);   
//   break;      
  case 1: 
   STA=0;
   SPI_Flash_Read((u8*)Readbuff, Memory_Offset, Transfer_Length);      
   break;  
  default:
   return MAL_FAIL;
 }
 if(STA!=0)return MAL_FAIL;
 return MAL_OK;
}

/*******************************************************************************
* Function Name  : MAL_GetStatus
* Description    : Get status
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
u16 MAL_GetStatus (u8 lun)
{
    switch(lun)
    {
//    case 0:
//        return MAL_OK;
    case 1:
        return MAL_OK;
    case 2:
        return MAL_FAIL;
    default:
        return MAL_FAIL;
    }
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-17 11:28:46 | 显示全部楼层
在mass_mal.h里面
修改:
#define MAL_OK   0
#define MAL_FAIL 1
#define MAX_LUN  1 //2个可移动磁盘 SD卡+FLASH

extern long long Mass_Memory_Size[MAX_LUN+1];
extern u32 Mass_Block_Size[MAX_LUN+1];
extern u32 Mass_Block_Count[MAX_LUN+1];

为:
#define MAL_OK   0
#define MAL_FAIL 1
#define MAX_LUN  0 //1个可移动磁盘  

extern long long Mass_Memory_Size[MAX_LUN+1];
extern u32 Mass_Block_Size[MAX_LUN+1];
extern u32 Mass_Block_Count[MAX_LUN+1];
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

25

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-1-4
在线时间
0 小时
 楼主| 发表于 2013-9-17 12:00:48 | 显示全部楼层
原子哥,速度真快,我在待的过程也找的这里了,但是我把MAX_LUN 改为0了,但是有问题是,打不开磁盘,有请将磁盘插入驱动器的提示
回复 支持 反对

使用道具 举报

25

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-1-4
在线时间
0 小时
 楼主| 发表于 2013-9-17 12:51:59 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,速度真快,我在待的过程也找的这里了,但是我把MAX_LUN 改为0了,但是有问题是,打不开磁盘,有请将磁盘插入驱动器的提示
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-17 13:59:06 | 显示全部楼层
u16 MAL_Init(u8 lun)
{
  u16 status = MAL_OK;  
  switch (lun)
  {
//    case 0:       
//      break;      
    case 1:       
      break;    
    default:
      return MAL_FAIL;
  }
  return status;
}
等函数,不能屏蔽0,而是要屏蔽1.
因为MAX_LUN为0,表示只有1个盘,就是从case 0的。。。不是case 1.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

25

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-1-4
在线时间
0 小时
 楼主| 发表于 2013-9-17 14:10:49 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
MAL_Init 这个函数我觉得没有任何用,它是被这个MAL_Config这个调用,而这个函数,根本就没有用,先按你的方法试试,
回复 支持 反对

使用道具 举报

25

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-1-4
在线时间
0 小时
 楼主| 发表于 2013-9-17 17:32:44 | 显示全部楼层
现在我修改了,如果,有新的问题,U盘的盘符很久才出现,然后还是有请将磁盘插入驱动器的提示


/* Includes ------------------------------------------------------------------*/
#include "platform_config.h"    
#include "mmc_sd.h"
#include "mass_mal.h"
#include "flash.h"
   
long long Mass_Memory_Size[MAX_LUN+1];
u32 Mass_Block_Size[MAX_LUN+1];
u32 Mass_Block_Count[MAX_LUN+1];
   
/*******************************************************************************
* Function Name: MAL_Init
* Description : Initializes the Media on the STM32
* Input       : None
* Output      : None
* Return      : None
*******************************************************************************/  
u16 MAL_Init(u8 lun)
{
  u16 status = MAL_OK;  
  switch (lun)
  {
    case 0:     
      break;    
//    case 1:   
//      break;   
    default:
      return MAL_FAIL;
  }
  return status;
}
 
/*******************************************************************************
* Function Name: MAL_Write
* Description : Write sectors
* Input       : None
* Output      : None
* Return      : 0,OK
                   1,FAIL
*******************************************************************************/
u16 MAL_Write(u8 lun, u32 Memory_Offset, u32 *Writebuff, u16 Transfer_Length)
{   
u8 STA;
switch (lun)
{
// case 0:   
// STA=SD_WriteDisk((u8*)Writebuff, Memory_Offset>>9, Transfer_Length>>9);      
// break;   
case 0:  
STA=0;
SPI_Flash_Write((u8*)Writebuff, Memory_Offset, Transfer_Length);      
break; 
default:
return MAL_FAIL;
}
if(STA!=0)return MAL_FAIL;
return MAL_OK;
}

/*******************************************************************************
* Function Name: MAL_Read
* Description : Read sectors
* Input       : None
* Output      : None
* Return      : 0,OK
                   1,FAIL
*******************************************************************************/
u16 MAL_Read(u8 lun, u32 Memory_Offset, u32 *Readbuff, u16 Transfer_Length)
{
u8 STA;
switch (lun)
{
// case 0:     
// STA=SD_ReadDisk((u8*)Readbuff, Memory_Offset>>9, Transfer_Length>>9);    
// break;     
case 0:  
STA=0;
SPI_Flash_Read((u8*)Readbuff, Memory_Offset, Transfer_Length);      
break;   
default:
return MAL_FAIL;
}
if(STA!=0)return MAL_FAIL;
return MAL_OK;
}

/*******************************************************************************
* Function Name: MAL_GetStatus
* Description : Get status
* Input       : None
* Output      : None
* Return      : None
*******************************************************************************/
u16 MAL_GetStatus (u8 lun)
{
    switch(lun)
    {
//    case 0:
//        return MAL_OK;
    case 0:
        return MAL_OK;
    case 1:
        return MAL_FAIL;
    default:
        return MAL_FAIL;
    }
}

/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
回复 支持 反对

使用道具 举报

25

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-1-4
在线时间
0 小时
 楼主| 发表于 2013-9-17 17:33:44 | 显示全部楼层
还有其他文件要修改的吧
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-17 21:28:39 | 显示全部楼层
差不多了哦,呵呵。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

25

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-1-4
在线时间
0 小时
 楼主| 发表于 2013-9-18 08:40:36 | 显示全部楼层
但是,还是不行,任然有请将磁盘插入驱动器的提示 ,还有个新问题,就是盘符很久才出现
回复 支持 反对

使用道具 举报

25

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-1-4
在线时间
0 小时
 楼主| 发表于 2013-9-18 13:58:28 | 显示全部楼层
有没有,只有一个U盘的实验呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-18 14:34:57 | 显示全部楼层

 帮你搞了下,自己对比下看看哪里错了。

 

实验50 USB读卡器实验(单SPI FLASH).rar

306.02 KB, 下载次数: 52

我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

25

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-1-4
在线时间
0 小时
 楼主| 发表于 2013-9-18 14:41:22 | 显示全部楼层
非常感谢,原哥
回复 支持 反对

使用道具 举报

25

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-1-4
在线时间
0 小时
 楼主| 发表于 2013-9-18 17:08:29 | 显示全部楼层
提出个问题:既然只有,SPI_FLASH了,不知道可不可以     
//Mass_Block_Size[0] =512;//因为我们在Init里面设置了SD卡的操作字节为512个,所以这里一定是512个字节.
Mass_Block_Size[0] =4096;
把512给为4096,我刚刚试了,好像不能对FLASH操作,还需要改那几个文件,或者说根本就不能改只是512
回复 支持 反对

使用道具 举报

25

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-1-4
在线时间
0 小时
 楼主| 发表于 2013-9-18 17:13:59 | 显示全部楼层
 还有电脑右下角老是会弹出如图的提示
不知怎么去掉
Z}85)0~9LH7Y5Z}5W2]U%MF.jpg
回复 支持 反对

使用道具 举报

25

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-1-4
在线时间
0 小时
 楼主| 发表于 2013-9-18 17:14:28 | 显示全部楼层
 
回复 支持 反对

使用道具 举报

25

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-1-4
在线时间
0 小时
 楼主| 发表于 2013-9-18 17:15:16 | 显示全部楼层


 
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-18 22:10:39 | 显示全部楼层
回复【14楼】bluezap:
---------------------------------
这个没试过了,呵呵。

回复【17楼】bluezap:
---------------------------------
你的这个,拔了USB,重新上电试试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-13 05:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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