硬汉嵌入式论坛

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

[STM32H7] RL-USB做host MSC设备如何检测U盘的热插拔状态

[复制链接]

59

主题

675

回帖

857

积分

金牌会员

积分
857
发表于 2025-4-28 22:19:28 | 显示全部楼层 |阅读模式
RL-USB做host MSC设备如何检测U盘的热插拔状态。综合实例中没有看到有热插拔检测的代码。
【视频教程】RTX5/FreeRTOS全家桶源码工程综合实战模板集成CANopen组件(2024-10-30) - STM32H7 - 硬汉嵌入式论坛 - Powered by Discuz!



回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117530
QQ
发表于 2025-4-29 11:25:18 | 显示全部楼层
应该是接口函数


123.png
回复

使用道具 举报

59

主题

675

回帖

857

积分

金牌会员

积分
857
 楼主| 发表于 2025-4-29 14:33:05 | 显示全部楼层
功能上应该是这个接口函数,bit 0是检查插拔的,bit 1是检查读写保护的。下载了例程代码,例程中是用USBH_MSC_DriveGetMediaStatus这个函数。就是好像都是需要用户自行管理这个热插拔


  for (;;) {
    msc_status = USBH_MSC_DriveGetMediaStatus ("U0:");  // Get MSC device status
    if (msc_status == USBH_MSC_OK) {
      if (con == 0U) {                  // If stick was not connected previously
        con = 1U;                       // Stick got connected
        msc_status = USBH_MSC_DriveMount ("U0:");
        if (msc_status != USBH_MSC_OK) {
          continue;                     // Handle U0: mount failure
        }
        f = fopen ("Test.txt", "w");    // Open/create file for writing
        if (f == NULL) {
          continue;                     // Handle file opening/creation failure
        }
        fprintf (f, "USB Host Mass Storage!\n");
        fclose (f);                     // Close file
        msc_status = USBH_MSC_DriveUnmount ("U0:");
        if (msc_status != USBH_MSC_OK) {
          continue;                     // Handle U0: dismount failure
        }
      }
    } else {
      if (con == 1U) {                  // If stick was connected previously
        con = 0U;                       // Stick got disconnected
      }
    }
    osDelay(100U);
  }

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-13 01:38 , Processed in 0.038791 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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