OpenEdv-开源电子网

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

USB链接电脑只能看见盘符,不显示容量,不能打开

[复制链接]

19

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
257
金钱
257
注册时间
2017-8-2
在线时间
46 小时
发表于 2017-11-6 16:19:11 | 显示全部楼层 |阅读模式
1金钱
USB链接电脑只能看见盘符,不显示容量,不能打开

最佳答案

查看完整内容[请看2#楼]

改来USB的中断设置抢占1,就正确了。 这里需要注意两点:第一,如果两个中断的抢占优先级和响应优先级都是一样的话,则看 哪个中断先发生就先执行;第二,高优先级的抢占优先级是可以打断正在进行的低抢占优先级 中断的。而抢占优先级相同的中断,高优先级的响应优先级不可以打断低响应优先级的中断。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
257
金钱
257
注册时间
2017-8-2
在线时间
46 小时
 楼主| 发表于 2017-11-6 16:19:12 | 显示全部楼层
Bunny17 发表于 2017-11-7 11:26
我测试程序,一旦初始化了USB,然就就进不了SDIO的中断函数??SDIO的中断设置为抢占0,子优先级0,组2,  ...

改来USB的中断设置抢占1,就正确了。

这里需要注意两点:第一,如果两个中断的抢占优先级和响应优先级都是一样的话,则看
哪个中断先发生就先执行;第二,高优先级的抢占优先级是可以打断正在进行的低抢占优先级
中断的。而抢占优先级相同的中断,高优先级的响应优先级不可以打断低响应优先级的中断。
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2012-2-28
在线时间
12 小时
发表于 2017-11-6 16:38:10 | 显示全部楼层
格式化一下看看。
回复

使用道具 举报

19

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
257
金钱
257
注册时间
2017-8-2
在线时间
46 小时
 楼主| 发表于 2017-11-6 17:11:09 | 显示全部楼层
本帖最后由 Bunny17 于 2017-11-6 19:47 编辑
xuzhenglim 发表于 2017-11-6 16:38
格式化一下看看。

格式化了,我发现原子哥的例程也有这个问题,就是把SDIO的传输方式从查询模式改为DMA模式后就会出现同样的问题。
回复

使用道具 举报

19

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
257
金钱
257
注册时间
2017-8-2
在线时间
46 小时
 楼主| 发表于 2017-11-6 17:11:44 | 显示全部楼层
本帖最后由 Bunny17 于 2017-11-6 19:47 编辑

这是个什么原因呢,,,难道只能用查询模式???
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2017-11-7 00:41:13 | 显示全部楼层
修改代码bug,试试寄存器版本
回复

使用道具 举报

19

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
257
金钱
257
注册时间
2017-8-2
在线时间
46 小时
 楼主| 发表于 2017-11-7 08:44:54 | 显示全部楼层
正点原子 发表于 2017-11-7 00:41
修改代码bug,试试寄存器版本

我现在用的就是寄存器版本,还没有找到bug在哪里,5555
回复

使用道具 举报

19

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
257
金钱
257
注册时间
2017-8-2
在线时间
46 小时
 楼主| 发表于 2017-11-7 11:26:38 | 显示全部楼层
正点原子 发表于 2017-11-7 00:41
修改代码bug,试试寄存器版本

我测试程序,一旦初始化了USB,然就就进不了SDIO的中断函数??SDIO的中断设置为抢占0,子优先级0,组2,   USB的中断设置为抢占0,子优先级3,组2
回复

使用道具 举报

19

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
257
金钱
257
注册时间
2017-8-2
在线时间
46 小时
 楼主| 发表于 2017-11-7 13:59:06 | 显示全部楼层
正点原子 发表于 2017-11-7 00:41
修改代码bug,试试寄存器版本

原子哥,那个存储器初始化成功了,但是信息不正确,也就是说反馈回来的容量大小不正确,会影响后面USB的读取吗
回复

使用道具 举报

19

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
257
金钱
257
注册时间
2017-8-2
在线时间
46 小时
 楼主| 发表于 2017-11-7 15:07:43 | 显示全部楼层
Bunny17 发表于 2017-11-7 13:59
原子哥,那个存储器初始化成功了,但是信息不正确,也就是说反馈回来的容量大小不正确,会影响后面USB的 ...

从usb里面的这个函数看出来肯定是会有问题的。

//获取存储设备的容量和块大小
//lun:逻辑单元编号,0,SD卡;1,SPI FLASH
//block_num:块数量(扇区数)
//block_size:块大小(扇区大小)
//返回值:0,成功;
//    其他,错误代码
int8_t STORAGE_GetCapacity (uint8_t lun, uint32_t *block_num, uint32_t *block_size)
{     
        switch(lun)
        {
                /*case 0://SPI FLASH
                        *block_size=512;  
                        *block_num=1024*1024*25/512;        //SPI FLASH的前面25M字节,文件系统用
                        break;
                case 1://NAND FLASH
                        *block_size=512;  
                        *block_num=nand_dev.valid_blocknum*nand_dev.block_pagenum*nand_dev.page_mainsize/512;
                          break;*/
                case 2://SD卡
                        *block_size=512;  
                        *block_num=SDCardInfo.CardCapacity/512;
                        break;
        }         
        return 0;
}
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 09:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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