硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3305|回复: 9
收起左侧

[STM32H7] 请教下, 利用在 V7 里面的 u盘历程升级hal库或者 usb库后,貌似识别不到u盘,有谁遇到过吗 ?

[复制链接]

655

主题

3299

回帖

5289

积分

论坛元老

积分
5289
发表于 2019-12-4 21:56:14 | 显示全部楼层 |阅读模式
请教下, 利用在 V7 里面的 u盘历程升级hal库或者 usb库后,貌似识别不到u盘,有谁遇到过吗 ?

v7 里面的 usb 库版本是:
  * @version V3.2.2
  * @date    07-July-2015


hal 库版本:
/**
* @brief STM32H7xx HAL Driver version number V1.3.0
   */
#define __STM32H7xx_HAL_VERSION_MAIN   (0x01) /*!< [31:24] main version */
#define __STM32H7xx_HAL_VERSION_SUB1   (0x03) /*!< [23:16] sub1 version */
#define __STM32H7xx_HAL_VERSION_SUB2   (0x00) /*!< [15:8]  sub2 version */
#define __STM32H7xx_HAL_VERSION_RC     (0x00) /*!< [7:0]  release candidate */
#define __STM32H7xx_HAL_VERSION         ((__STM32H7xx_HAL_VERSION_MAIN << 24)\
                                        |(__STM32H7xx_HAL_VERSION_SUB1 << 16)\
                                        |(__STM32H7xx_HAL_VERSION_SUB2 << 8 )\
                                        |(__STM32H7xx_HAL_VERSION_RC))


这个 v1.3.0 hal 驱动库版本升级到 v1.5.0,  usb 库保持不变的话, 读写u盘都正常,

但是 把上述任一 一个库 版本升级 就都不行了, 比如把
hal 升级到 1.6.0 或者
usb 库升级到 /**
  ******************************************************************************
  * @file    usbh_msc.c
  * @author  MCD Application Team
  * @brief   This file implements the MSC class driver functions
  *          ===================================================================
  *                                MSC Class  Description
  *          ===================================================================
  *           This module manages the MSC class V1.0 following the "Universal
  *           Serial Bus Mass Storage Class (MSC) Bulk-Only Transport (BOT) Version 1.0
  *           Sep. 31, 1999".
  *           This driver implements the following aspects of the specification:
  *             - Bulk-Only Transport protocol
  *             - Subclass : SCSI transparent command set (ref. SCSI Primary Commands - 3 (SPC-3))
  *
  *  @endverbatim
  *
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; Copyright (c) 2015 STMicroelectronics.
  * All rights reserved.</center></h2>
  *
  * This software component is licensed by ST under Ultimate Liberty license
  * SLA0044, the "License"; You may not use this file except in compliance with
  * the License. You may obtain a copy of the License at:
  *                      www.st.com/SLA0044
  *
  ******************************************************************************
  */

再或者 hal 库与 usb 都同时升级,结果都不行 ??????????

应用部分都保持不变, 程序编译都是没有发生任何警告与错误提示
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2019-12-5 08:36:48 | 显示全部楼层
ST的库容易有这种问题,这个得在实现方式上改改看看,特别是局部变量没有清零的问题,另外就是heap空间要够大。
st的库要调用。
回复

使用道具 举报

655

主题

3299

回帖

5289

积分

论坛元老

积分
5289
 楼主| 发表于 2019-12-5 10:31:45 | 显示全部楼层
eric2013 发表于 2019-12-5 08:36
ST的库容易有这种问题,这个得在实现方式上改改看看,特别是局部变量没有清零的问题,另外就是heap空间要够 ...

刚刚对照了一下,发现里面有 3个函数的内容有点差别

3. stm32h7xx_hal_hcd
   stm32h7xx_hal_hcd.c   2019.04.05  对应 HAL 库 v1.5.0.0
   stm32h7xx_hal_hcd.c   2019.06.27  对应 HAL 库 v1.6.0.0
   有差异的函数 HAL_HCD_HC_SubmitRequest
                       HAL_HCD_IRQHandler
                       HCD_Port_IRQHandler
  估计就跟上面的 三个函数有关,具体的还有待 验证,到时有结果我再回复你

我目前的 heap 设置为 0x3000 , 再大我也设置过,貌似结果一样,

回复

使用道具 举报

655

主题

3299

回帖

5289

积分

论坛元老

积分
5289
 楼主| 发表于 2019-12-5 11:14:42 | 显示全部楼层
eric2013 发表于 2019-12-5 08:36
ST的库容易有这种问题,这个得在实现方式上改改看看,特别是局部变量没有清零的问题,另外就是heap空间要够 ...

现在 usb 库最 稳定,最好,兼容性最好的是哪个版本的苦啊  ??
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2019-12-5 11:25:38 | 显示全部楼层
hpdell 发表于 2019-12-5 11:14
现在 usb 库最 稳定,最好,兼容性最好的是哪个版本的苦啊  ??

ST的这个USB库,我只用过这个老版本的。

新版的还没有测试过。
回复

使用道具 举报

655

主题

3299

回帖

5289

积分

论坛元老

积分
5289
 楼主| 发表于 2019-12-7 09:09:44 | 显示全部楼层
eric2013 发表于 2019-12-5 11:25
ST的这个USB库,我只用过这个老版本的。

新版的还没有测试过。

终于摆平了,他奶奶的
要想使用 h7  的 hal 库, 版本为 v1.6.0.0
usb 驱动库支持 FreeRTOS V2  封装层就需要
在 usbh_conf.c 里面增加以下2个函数即可
void HAL_HCD_PortEnabled_Callback(HCD_HandleTypeDef *hhcd)
{
  USBH_LL_PortEnabled(hhcd->pData);
}


void HAL_HCD_PortDisabled_Callback(HCD_HandleTypeDef *hhcd)
{
  USBH_LL_PortDisabled(hhcd->pData);
}

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2019-12-7 10:30:02 | 显示全部楼层
hpdell 发表于 2019-12-7 09:09
终于摆平了,他奶奶的
要想使用 h7  的 hal 库, 版本为 v1.6.0.0
usb 驱动库支持 FreeRTOS V2  封装层就 ...

回复

使用道具 举报

0

主题

84

回帖

84

积分

初级会员

积分
84
发表于 2019-12-7 15:09:41 | 显示全部楼层
能提供一个完整工程吗,谢谢。
回复

使用道具 举报

655

主题

3299

回帖

5289

积分

论坛元老

积分
5289
 楼主| 发表于 2019-12-7 15:57:34 | 显示全部楼层
回复

使用道具 举报

655

主题

3299

回帖

5289

积分

论坛元老

积分
5289
 楼主| 发表于 2019-12-11 18:52:38 | 显示全部楼层
xk2yx 发表于 2019-12-7 15:09
能提供一个完整工程吗,谢谢。

安富莱的历程就可以, 如果使用最新的 usb 库,把我上面的函数加进去就 ok

我也是在 安富莱的历程上修改的
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-11-1 07:11 , Processed in 0.262996 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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