日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 模拟 cdrom,stm32 usb 虚拟一个cdrom

發布時間:2024/4/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 模拟 cdrom,stm32 usb 虚拟一个cdrom 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我是用SD卡模擬的,修改模擬U盤的工程,const int8_t??STORAGE_Inquirydata[] =

{

/* LUN 0??SD卡 */

0x05,? ? ? ? ? ? ? ? //0x05??CD-ROM

0x80,

0x02,

0x02,

(USBD_STD_INQUIRY_LENGTH - 5),

0x00,

0x00,

0x00,

'S', 'T', 'M', ' ', ' ', ' ', ' ', ' ', /* Manufacturer : 8 bytes */

'm', 'i', 'c', 'r', 'o', 'S', 'D', ' ', /* Product? ?? ?: 16 Bytes */

'F', 'l', 'a', 's', 'h', ' ', ' ', ' ',

'1', '.', '0' ,'0',? ?? ?? ?? ?? ?? ?? ?/* Version? ?? ?: 4 Bytes */

};這樣也是枚舉成功,在電腦上可以看到CD-ROM就是打不開,網上找了下解決方法,**論壇有個人說還要用Fats文件系統函數result = f_mkfs("0:",1,4096);格式化一下

DRESULT disk_ioctl (

BYTE pdrv,? ? ? ? ? ? ? ? /* Physical drive nmuber (0..) */

BYTE cmd,? ? ? ? ? ? ? ? /* Control code */

void *buff? ? ? ? ? ? ? ? /* Buffer to send/receive control data */

)

{

DRESULT res;

switch (pdrv) {

case FS_SD :

{

res = RES_ERROR;

switch(cmd) {

case CTRL_SYNC:

res = RES_OK;

break;

case GET_SECTOR_COUNT:

*(DWORD *)buff = (DWORD)SDCardInfo.CardCapacity / 512;

res = RES_OK;

break;

case GET_SECTOR_SIZE:

*(DWORD *)buff = 512;

res = RES_OK;

break;

case GET_BLOCK_SIZE:

*(DWORD *)buff = (DWORD)SDCardInfo.CardBlockSize;

res = RES_OK;

break;

case CTRL_POWER:

res = RES_OK;

break;

case CTRL_LOCK:

res = RES_OK;

break;

case CTRL_EJECT:

break;

case MMC_GET_TYPE:

break;

case MMC_GET_CSD:

break;

case MMC_GET_CID:

break;

case MMC_GET_OCR:

break;

case MMC_GET_SDSTAT:

break;

}

return res;

}

case FS_NAND :

res = RES_OK;

return res;

}

return RES_PARERR;

}

試了下,真的可以

總結

以上是生活随笔為你收集整理的android 模拟 cdrom,stm32 usb 虚拟一个cdrom的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。