ch376可不可以检测出U盘被写保护呀?

如果可以检测的话,用哪个函数或是标志标识呀

可以,但是需要自己写函数来做。初始化磁盘后,发送写命令,如果返回的数据错误,发送命令查询错误。


我在对有写保护的U盘进行写操作时,函数返回错误代码是0X17,我看头文件中对0X17的定义是: #define USB_INT_BUF_OVER 0x17 /* USB传输的数据有误或者数据太多缓冲区溢出 */ 这个可不可以认为就是U盘写保护的标志?还是有其他的可能性?


也可以,但是USB传输有误可能的情况会比较多,不仅仅是写保护。但是一般只要U盘插在上面也基本没什么问题。但是标准的方法是发送CBW,进行写扇区操作。如果写保护,肯定会返回STALL,这时候去发送R_SENSE命令去查询失败状况,在失败状态里就有有一个标志是写保护。


CH376\EVT\EXAM\EXAM12 是演示检查U盘是否写保护的程序


谢谢了


只有登录才能回复,可以选择微信账号登录