OpenEdv-开源电子网

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

USB读卡器问题

[复制链接]

14

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2012-5-18
在线时间
3 小时
发表于 2012-8-6 13:40:52 | 显示全部楼层 |阅读模式
USB读卡器实验中想把SD卡换成FLASH(W25X16)芯片,需要修改哪些接口函数?请原子哥指点下~~谢谢!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-8-6 14:03:28 | 显示全部楼层
diskio.c里面,修改读写到flash即可.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2012-5-18
在线时间
3 小时
 楼主| 发表于 2012-8-6 19:05:28 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
接口函数修改如下:
/*******************************************************************************
* 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);
SPI_Flash_Write((u8*)Writebuff,Memory_Offset,Transfer_Length);   
break;   
case 1:    
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);
SPI_Flash_Read((u8*)Readbuff,Memory_Offset,Transfer_Length);    
break;     
case 1:  
break;   
default:
return MAL_FAIL;
}
//if(STA!=0)return MAL_FAIL;
return MAL_OK;
}

初始化部分修改如下:
sd_size=(long long)2048*4096;//SD_GetSectorCount()*512; //得到SD卡容量,字节.     
Mass_Memory_Size[0]=sd_size%4294967296; //当SD卡容量超过4G的时候,需要用到两个u32来表示
Mass_Memory_Size[1]=sd_size>>32;     //容量的高32位
Mass_Block_Size[0] =512; //因为我们在Init里面设置了SD卡的操作字节为512个,所以这里一定是512个字节.
Mass_Block_Count[0]=sd_size/Mass_Block_Size[0]; //得到扇区数
LCD_ShowString(60,150,"USB Connecting..."); //提示SD卡已经准备了

连接电脑后显示使用前必须格式化,但无法格式化也不能在电脑上读写
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 04:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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