完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
USB读写时,能通过CreateFile获取句柄,调用WriteFile或者ReadFile时总是返回失败,错误码是997,下面是写入HID的代码
if(m_hUsb==INVALID_HANDLE_VALUE)return; unsigned char OutputBuffer[70]; DWORD nWriteBytes; HANDLE WriteEvent = CreateEvent(NULL, true, false, NULL); OVERLAPPED writeOverlap; writeOverlap.hEvent = WriteEvent; writeOverlap.Offset = 0; writeOverlap.OffsetHigh = 0; UpdateData(TRUE); OutputBuffer[0] = 0x00; OutputBuffer[1] = 0x01; OutputBuffer[2] = 0x02; OutputBuffer[3] = 0x03; // for(int i=1; i-1 |
|
相关推荐
1个回答
|
|
根据您提供的代码和错误码997,我们可以分析以下几个可能导致WriteFile或ReadFile失败的原因:
1. 权限问题:错误码997通常表示“访问被拒绝”。请确保您的应用程序具有足够的权限来访问USB设备。您可以尝试以管理员身份运行您的应用程序,或者检查您的应用程序是否具有适当的权限。 2. 设备状态:请确保USB设备已正确连接并处于可读写状态。如果设备没有准备好,WriteFile或ReadFile可能会失败。 3. 缓冲区问题:请检查您的OutputBuffer是否已正确初始化并具有足够的空间来存储数据。此外,确保在调用WriteFile或ReadFile之前,您已正确设置了OVERLAPPED结构。 4. WriteFile或ReadFile的使用:您提到使用了OVERLAPPED结构和事件对象。请确保您正确地使用了这些对象。例如,您需要在调用WriteFile或ReadFile后等待事件对象被触发,以确保数据已成功写入或读取。 5. 设备驱动程序问题:如果上述步骤都无法解决问题,可能是USB设备的驱动程序存在问题。请尝试更新或重新安装驱动程序。 为了解决这个问题,您可以尝试以下步骤: 1. 确保您的应用程序具有足够的权限。 2. 检查USB设备的连接状态和驱动程序。 3. 确保OutputBuffer已正确初始化并具有足够的空间。 4. 检查OVERLAPPED结构和事件对象的使用是否正确。 5. 如果问题仍然存在,尝试更新或重新安装USB设备的驱动程序。 希望这些建议能帮助您解决问题。如果您需要更多帮助,请提供更详细的信息,例如完整的代码片段和错误日志。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1781 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1085 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1680 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
732浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
557浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 10:46 , Processed in 0.733177 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号