OpenEdv-开源电子网

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

求助 USB作为读卡器例程修改的问题

[复制链接]

27

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2015-12-17
在线时间
44 小时
发表于 2016-3-16 16:14:54 | 显示全部楼层 |阅读模式
1金钱
通过移植例程中USB读卡器例程,我能够检测到可移动硬盘,但是无法读取里面的数据和写入数据,我点击可移动硬盘,总是提示初始化,查看属性可用空间,已用空间都为0,这是什么问题,我用的是AT45DB081E  SPI FLASH  程序哪方面移植漏掉了 ,是USB驱动的问题,还是FLASH初始化有问题   谁能解答  谢谢




2488.tmp.png
253F.tmp.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-3-17 23:30:43 | 显示全部楼层
回复

使用道具 举报

27

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2015-12-17
在线时间
44 小时
 楼主| 发表于 2016-3-18 13:57:53 | 显示全部楼层
正点原子 发表于 2016-3-17 23:30
spi flash格式化了么?

如何格式化呢?电脑提示需要格式化,然后我就点击开始格式化,总是格式化失败
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-3-19 14:08:24 | 显示全部楼层
guoxiaoyan 发表于 2016-3-18 13:57
如何格式化呢?电脑提示需要格式化,然后我就点击开始格式化,总是格式化失败

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

使用道具 举报

27

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2015-12-17
在线时间
44 小时
 楼主| 发表于 2016-3-19 15:24:10 | 显示全部楼层
正点原子 发表于 2016-3-19 14:08
底层驱动 有问题了。那就。

继续问原子哥   我按原例程修改的,只是我没有连接SD卡,用的SPI  FLASH 芯片是AT45DB081的, 这样的话,我需要对哪里做些修改呢,目前我只对这两个函数进行了修改uint16_t MAL_Write(uint8_t lun, uint64_t Memory_Offset, uint32_t *Writebuff, uint16_t Transfer_Length)
{
        u8 STA;
        switch (lun)                //这里,根据lun的值确定所要操作的磁盘
        {
                case 0:                         //磁盘0为 SPI FLASH盘       
                        STA=0;
                         AT45DB081_Write_Mainmemory(0x82,(u32) Memory_Offset,(u8*)Writebuff,Transfer_Length);                   
                        break;
                case 1:                        //磁盘1为SD卡                  
                        STA=1;//SD_WriteDisk((u8*)Writebuff, Memory_Offset>>9, Transfer_Length>>9);                     
                        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         : Buffer pointer
*******************************************************************************/
uint16_t MAL_Read(uint8_t lun, uint64_t Memory_Offset, uint32_t *Readbuff, uint16_t Transfer_Length)
{
        u8 STA=0;
        switch (lun)                //这里,根据lun的值确定所要操作的磁盘
        {
                case 0:                        //磁盘0为 SPI FLASH盘         
                        STA=0;
                     AT45DB081_Read_Mainmemory((u8*)Readbuff, (u32)Memory_Offset, Transfer_Length);
                                  
                        break;          
                case 1:                        //磁盘1为SD卡                    
                        STA=1;//SD_ReadDisk((u8*)Readbuff, Memory_Offset>>9, Transfer_Length>>9);          
                        break;                            
                default:
                        return MAL_FAIL;
        }
        if(STA!=0)return MAL_FAIL;
        return MAL_OK;
}
屏蔽了有关SD的    ,
请指教  
回复

使用道具 举报

27

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2015-12-17
在线时间
44 小时
 楼主| 发表于 2016-3-19 15:25:28 | 显示全部楼层
我没用到SD,但是我还想保留着它。只运行SPI FLASH可不可以呢
回复

使用道具 举报

27

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2015-12-17
在线时间
44 小时
 楼主| 发表于 2016-3-19 17:00:36 | 显示全部楼层
以前看到有和我问题差不多的帖子 ,现在找不到了呢  有谁帮看一下
回复

使用道具 举报

19

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2015-12-6
在线时间
47 小时
发表于 2016-9-29 12:24:44 | 显示全部楼层
我也遇到了一样的问题,不知道怎么解决的好
回复

使用道具 举报

1

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2013-10-18
在线时间
20 小时
发表于 2016-11-18 18:52:10 | 显示全部楼层
SD_ReadDisk((u8*)Readbuff, Memory_Offset>>9, Transfer_Length>>9)
为什么要 右移动
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2018-7-18
在线时间
11 小时
发表于 2020-4-19 16:46:04 | 显示全部楼层
effortswyh 发表于 2016-11-18 18:52
SD_ReadDisk((u8*)Readbuff, Memory_Offset>>9, Transfer_Length>>9)
为什么要 右移动

你搞明白了吗,为什么要右移
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2020-4-20 01:11:16 | 显示全部楼层
Qupid 发表于 2020-4-19 16:46
你搞明白了吗,为什么要右移

因为地址不一样,扇区地址和字节地址,就差2的9次方
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 16:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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