你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

F767的USB对SD卡虚拟U盘,台式机读不了,笔记本能读

[复制链接]
ligongxiaobie 提问时间:2018-5-22 17:08 /
本帖最后由 ligongxiaobie 于 2018-5-22 20:02 编辑

如题,程序用正点原子的程序,台式机能识别驱动,但是显示叹号,笔记本能识别U盘。去掉其他不相关的部分函数,台式机就可以读了。但是其他功能(虚拟U盘之外的功能)就无法实现了。
基本代码如下:
  1. my_mem_init(SRAMIN);                    //初始化内部内存池


  2.         SD_Init();
  3.         exfuns_init();

  4.         MSC_BOT_Data=mymalloc(SRAMIN,MSC_MEDIA_PACKET);                        //申请内存
  5.         USBD_Init(&USB_OTG_dev,USB_OTG_FS_CORE_ID,&USR_desc,&USBD_MSC_cb,&USR_cb);
  6. //        delay_ms(1800);               
  7.         printf("进入USB\r\n");
  8.         while(1);        
复制代码

其他还有比较大的代码在不读SD卡时不运行,这里就不展示了,我感觉应该会有其他人也遇到过类似问题,不知大家有什么办法提示一下呢
收藏 1 评论15 发布时间:2018-5-22 17:08

举报

15个回答
AI++ 回答时间:2018-6-6 10:30:35
如果笔记本能读的话 ,
硬件考虑2点  1 台式机的电源 与笔记本不同,
2 台式机的 硬件驱动与笔记本不同
尝试  换个U口 ,或者换个USB集线器 ,在不行换个台式机 ,
2 考虑软件 ,那就是你台式机操作系统的驱动装的有问题,或者是套实际的操作系统有问题,
这个概率比较大,换台机子试试

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

ligongxiaobie 回答时间:2018-5-22 19:26:18
自己的帖子自己顶吧,不知有没有遇到过的
ligongxiaobie 回答时间:2018-5-23 09:02:28
别沉啊,程序中去掉某些与虚拟U盘不相关的函数,台式机就能识别,但这样不行啊。
shanji 回答时间:2018-6-6 09:16:48
上台机和笔记本的USB抓包数据对比下看看

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

lilei900512 回答时间:2018-6-6 09:22:49
去掉的函数里是不是有延时函数或者是有调用延时函数?

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

馒头弟 回答时间:2018-6-6 09:52:24
描述不是很清楚吖,系统都是win10吗?抓一下枚举过程。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

x5y4z3 回答时间:2018-6-6 10:26:56
个人觉得,要解决这问题,不是换一台别款与笔电同系统版本的台式机来试,要吗就是换人来试!
这两项必然有一项能解决楼主的疑问,哈!~

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

五哥1 回答时间:2018-6-6 12:48:01
能具体说说是哪个函数吗?把这个函数发上来看看,感觉是不是用了串口,有冲突

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

大天津 回答时间:2018-6-6 13:06:17
我想会不会因为两台机器的WIN系统存在差异?很多时候虽然驱动认了,但是存在端口冲突。我的理解可能不确切供参考。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

jcx0324 回答时间:2018-6-6 14:06:00
还是直接用抓包软件去分析比较实在

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

阿莫西林 回答时间:2018-6-6 14:43:18
我用F072的USB把flash都可以模拟成U盘,你这肯定是程序问题

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

Cortexxx 回答时间:2018-6-6 16:49:56
阿莫西林 发表于 2018-6-6 14:43
我用F072的USB把flash都可以模拟成U盘,你这肯定是程序问题

请问,你是用CubeMX做的吗?  我正在用F407的Flash做一个U盘,因为不是很懂USB所以就直接用CubeMX生成USB的project, 修改了 STORAGE_Read_FS()  和 STORAGE_Write_FS() 这两函数,分别在里面添加了读,写 FLASH的函数。可是查到电脑上面还是显示U盘需要格式化。是不是还要添加别的函数?  读写的FLASH BASE ADDRESS 需要再定义吗?
还有这两个#define  配置块的大小 和数量 是要根据 FLASH的 SECTOR大小做相应的改变吗?
而且F407 FLASH的SECTOR的大小并不是均分的。
#define STORAGE_BLK_NBR                  0x10000
#define STORAGE_BLK_SIZ                  0x200

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

蓝夜 回答时间:2018-6-7 15:07:27
你用 CubeMX 生成一个例子 ,然后 比较一下,这样比较好,你觉得呢?
不行就用CubeMx

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

forget121 回答时间:2018-6-7 16:09:52
这种问题要用排除方法,确定是软件是问题,还是兼容问题,,
多试几台笔记本和台式机,
软件上对比其它型号MCU,没有问题的代码,,主要对比下初始化部分。。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

12下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版