嵌入式技术william hill官网
直播中

goodmbby

8年用户 1184经验值
擅长:处理器/DSP
私信 关注
[问答]

单片机USB做主机读U盘升级时USB接入如何检测

最近想做过单片机做USBHOST,当U盘插入时读取U盘升级文件进行升级,请问:

U盘是否插入如何检测,必须OTG吗?谁做过可以交流下

回帖(4)

杨勇

2022-11-16 11:01:10
我是在 components/drivers/usb/usbhost/class/udisk.c 中自己加:

/**
* @Brief 检测是否插入 U盘
* @Return 0: 没有插入 U盘;1: 插入 U盘
*/
rt_uint8_t udisk_get_status(void)
{
    return _udisk_idset;
}
然后直接 extern rt_uint8_t udisk_get_status(void)声明后调用。
举报

陈勇

2022-11-16 11:01:28
印象中USB主机是可以通过USB总线的电平变化发现有USB从机(比如U盘)接入的,
USB主机在实现其驱动程序的时候,应该有对应的方式发现从机设备的。
举报

goodmbby

2022-11-16 11:01:45
那是否意味着只USB HOST就可以实现对U盘的插入检测和读写?
如果单片机只是为了上面的需求就没必要OTG?
理论上如果用单片机OTG可以同时实现1接入PC时自己模拟成U盘从PC拖拽升级文件进行升级;2插入U盘时单片机作为主机读写U盘升级?
OTG的硬件上是否必须有别于常规USB?听说切换host和device可以硬件也可以软件?
举报

陈勇

2022-11-16 11:01:56
这个必须正确挂载U盘设备后通知其它线程。可以去我的 gitee 仓库下载我修改过之后的 usb host 代码。里面有添加的接口。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分