OpenEdv-开源电子网

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

原子哥,你战舰板的USB读卡器实验怎么修改?

[复制链接]

2

主题

19

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2013-4-17
在线时间
0 小时
发表于 2013-4-17 09:22:02 | 显示全部楼层 |阅读模式
USB读卡器实验用的是USB-BOT吧,我在哪里能找到USB读取的数据存储的寄存器呢,我只看到好多的*buf
switch (Bot_State)
 {
  case BOT_IDLE:
   CBW_Decode();
   break;
  case BOT_DATA_OUT://USB发送数据到设备
   if (CMD == SCSI_WRITE10)
   {
    USB_STATUS_REG|=0X01;//标记正在写数据
    SCSI_Write10_Cmd(CBW.bLUN , SCSI_LBA , SCSI_BlkLen);
    break;
   }
   Bot_Abort(DIR_OUT);
   Set_Scsi_Sense_Data(CBW.bLUN, ILLEGAL_REQUEST, INVALID_FIELED_IN_COMMAND);
   Set_CSW (CSW_PHASE_ERROR, SEND_CSW_DISABLE);
   break;
  default:
   Bot_Abort(BOTH_DIR);
   Set_Scsi_Sense_Data(CBW.bLUN, ILLEGAL_REQUEST, INVALID_FIELED_IN_COMMAND);
   Set_CSW (CSW_PHASE_ERROR, SEND_CSW_DISABLE);
   break;
 }

这段话要怎么解读?是不是要再向下层看才行,有些不知所措,都一个星期了,希望有人帮帮忙~感谢了
STM32我跟你拼了!!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-17 10:14:35 | 显示全部楼层
回复【楼主位】eletric-Claude:
---------------------------------
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;
}
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;
}

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

使用道具 举报

2

主题

19

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2013-4-17
在线时间
0 小时
 楼主| 发表于 2013-4-17 10:28:27 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
神速回复啊~没想到那么快,我想问问:
1.MAL代表什么意思?(Mass Axxxxx Lxxxxx)
2.MAL_Write和MAL_Read都是直接对SD卡进行SPI通信的吧,我想知道USB的用BOT读写的数据放在哪里?怎么都没看到调用发送接收的程序?
3.BOT可以进行数据的传输吧?我不把数据写到sd卡里就可以了吧? 
STM32我跟你拼了!!!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-17 14:49:40 | 显示全部楼层
回复【3楼】eletric-Claude:
---------------------------------
1,MAL啥意思我也不懂.
2,是的,如果你想刨根问底,仿真跟踪吧.
3,简单的数据通信,用HID吧,ST还有个官方例程,USB虚拟串口,比较适合你用.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

19

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2013-4-17
在线时间
0 小时
 楼主| 发表于 2013-4-17 15:18:42 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
HID 传输太慢了,我现在做的实验需要2M以上的数据传输,而且是数据流,实时数据,所以想试一下bot行不行,纠结好多天了,你说的USB_Istr()里面操作的是不是只有一些标志位,老实说这段代码看不懂 T^T 还是找不到发送和接收的缓存器,仿真跟踪的话也看不到的吧,网上看到如果是F105或者F107的就可以用OTG,可惜战舰板是F103的......
STM32我跟你拼了!!!
回复 支持 反对

使用道具 举报

54

主题

537

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2012-2-27
在线时间
7 小时
发表于 2013-5-26 23:03:44 | 显示全部楼层
回复【5楼】eletric-Claude:
---------------------------------
进展如何啊楼主
回复 支持 反对

使用道具 举报

2

主题

19

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2013-4-17
在线时间
0 小时
 楼主| 发表于 2013-5-27 13:03:06 | 显示全部楼层
回复【6楼】wwjdwy:
---------------------------------
按原子的方法,弄个串口出来~
STM32我跟你拼了!!!
回复 支持 反对

使用道具 举报

54

主题

537

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2012-2-27
在线时间
7 小时
发表于 2013-5-27 21:16:50 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,我看了下移植的时候我们只要修改mal里面函数就可以了是么。
memory.c里面不用改了吧

你这里的SD_WriteDisk((u8*)Writebuff, Memory_Offset>>9, Transfer_Length>>9);       >>9是为什么啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

54

主题

537

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2012-2-27
在线时间
7 小时
发表于 2013-5-28 14:35:47 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
原子哥我们移植时候主要就修改mass-mal里面的初始化,读,写这三个函数是么。

其他还有哪里的修改需要注意。Max_Lun已经修改了。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

54

主题

537

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2012-2-27
在线时间
7 小时
发表于 2013-5-28 18:57:02 | 显示全部楼层
回复【11楼】正点原子:
---------------------------------
目前还是不行,初始化SD卡里面加了printf ,SD_Initialize正常,并且读出了盘的容量。但是U盘没有出现。
之后计算机弹出一个对话框“使用驱动器J:之前需要将其格式化”,点击确定后又出来对话框“Windows无法格式化J 请检查磁盘和驱动器是否已正确连接,确保磁盘并非只读磁盘,然后重试。。。。。。”

还没想到解决的办法呼呼
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-28 21:01:11 | 显示全部楼层
sorry,我还不知道你要改成一个什么样的东西呢?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2012-12-27
在线时间
0 小时
发表于 2013-8-20 15:16:48 | 显示全部楼层
回复【7楼】eletric-Claude:
---------------------------------
请教一下,虚拟串口速度能达到多少?
回复 支持 反对

使用道具 举报

10

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2012-12-27
在线时间
0 小时
发表于 2013-8-20 15:18:17 | 显示全部楼层
回复【5楼】eletric-Claude:
---------------------------------
也遇到这种问题,不知楼主是怎么解决的,QQ1574122121,希望楼主能帮忙解答
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-14 23:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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