完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用NUC505 的U盘例子,可以识别U盘并读出扇区等,但不知道如何判断U盘已经拔出?
我做了下列尝试: 1. 使用下列断点办法判断USB设备拔出,但是没有效果: 该断点却可以感应到USB设备插入 for (;;) { if (USBH_ProcessHubEvents()) { put_rc(f_mount( FatFs[0], "", 0)); //设置断点 } } 2. 观察NUC505的相关寄存器来判断USB设备拔出,也无效果 寄存器:Host Controller Root Hub Port Status 此寄存器有一个 CSC 标志位 Connect Status Change 3. 拦截USBH的中断,无效果 在此设置断点 void USBH_IRQHandler(void) |
|
相关推荐
1个回答
|
|
判断U盘是否已拔出的方法可以通过监测USB设备的连接状态来实现。在NUC505 USB Host中,可以使用USBH_HUB_GetDeviceStatus函数来获取USB设备的连接状态。该函数返回值为USBH_HUB_PORT_STATE枚举类型,其中有一个标志位USBH_HUB_PORT_CONNECT表示设备是否连接。
以下是一个示例代码段,用于判断U盘是否已拔出: ```c for (;;) { if (USBH_ProcessHubEvents()) { USBH_HUB_PORT_STATE portState = USBH_HUB_GetDeviceStatus(USB_HOST_PORT_NUM); if (!(portState & USBH_HUB_PORT_CONNECT)) { // U盘已拔出 break; } // U盘仍然连接着 // 执行需要的操作 } } ``` 注意:上述示例代码中的USB_HOST_PORT_NUM需要替换为实际使用的USB端口号,通常为0或1,具体取决于NUC505的硬件设计。 通过轮询USB设备的连接状态,可以判断出U盘是否已拔出。当USBH_HUB_GetDeviceStatus函数返回的状态中不包含USBH_HUB_PORT_CONNECT标志位时,即表示U盘已拔出。此时可以中断循环,并执行对应的处理逻辑。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard EL 1板卡-i2c与从设备通讯编程示例之i2c-tools工具使用
652 浏览 0 评论
stc15f2k60s2利用串口传输字模存储到eeprom并进行点阵显示
696 浏览 1 评论
1264 浏览 0 评论
588 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-串口通讯编程示例之串口编写程序
1190 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11598 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 03:25 , Processed in 0.570813 second(s), Total 76, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号