CH559操作USB鍵鼠串口輸出鍵盤燈該如何控制

CH559操作USB鍵鼠串口輸出,切換大小寫指示燈沒有任何反應(yīng),鍵盤燈該如何控制,

鍵盤燈一般是通過SET_REPORT類命令控制傳輸實(shí)現(xiàn)。例如:

(set)?21 09 00 02? 00 00 01 00

? (out)? 01

?? (in)? no data

對接口0下傳1字節(jié)01實(shí)現(xiàn)。具體傳輸什么值,需要分析HID報(bào)表。

?


USBH_HUB_KM.C這個(gè)文件,main的4856行?SETorOFFNumLock(RxBuffer);這個(gè)函數(shù)是控制點(diǎn)燈的。

具體函數(shù)在1672行,如下

*******************************************************************************/

UINT8 SETorOFFNumLock(PUINT8 buf)

{

? ? UINT8 tmp[]= {0x21,0x09,0x00,0x02,0x00,0x00,0x01,0x00};

? ? UINT8 len,s;

? ? if((buf[2]==0x53)&(buf[0]|buf[1]|buf[3]|buf[4]|buf[5]|buf[6]|buf[7]==0))

? ? {

? ? ? ? for ( s = 0; s != sizeof( tmp ); s ++ )

? ? ? ? {

? ? ? ? ? ? ((PUINT8X)pSetupReq)[ s ] = tmp[s];

? ? ? ? }

? ? ? ? s = HostCtrlTransfer( TxBuffer, &len ); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 執(zhí)行控制傳輸

? ? ? ? if ( s != ERR_SUCCESS )

? ? ? ? {

? ? ? ? ? ? return( s );

? ? ? ? }

? ? }

? ? return( ERR_SUCCESS );

}

如果點(diǎn)不亮,你看下枚舉,可能因?yàn)槭菑?fù)合設(shè)備,沒有調(diào)用此函數(shù),另外例子程序測試了部分鍵鼠,兼容性問題可能會(huì)有,操作鍵鼠流程大致如此,如果操作失敗,需要看看具體的監(jiān)控信息,才好判斷問題。


? ? ? ? ? ? ? ? ? ? ? ? ? ?

USBH_HUB_KM.C這個(gè)文件,main的4856行?SETorOFFNumLock(RxBuffer);這個(gè)函數(shù)是控制點(diǎn)燈的。

具體函數(shù)在1672行,如下

*******************************************************************************/

UINT8 SETorOFFNumLock(PUINT8 buf)

{

? ? UINT8 tmp[]= {0x21,0x09,0x00,0x02,0x00,0x00,0x01,0x00};

? ? UINT8 len,s;

? ? if((buf[2]==0x53)&(buf[0]|buf[1]|buf[3]|buf[4]|buf[5]|buf[6]|buf[7]==0))

? ? {

? ? ? ? for ( s = 0; s != sizeof( tmp ); s ++ )

? ? ? ? {

? ? ? ? ? ? ((PUINT8X)pSetupReq)[ s ] = tmp[s];

? ? ? ? }

? ? ? ? s = HostCtrlTransfer( TxBuffer, &len ); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 執(zhí)行控制傳輸

? ? ? ? if ( s != ERR_SUCCESS )

? ? ? ? {

? ? ? ? ? ? return( s );

? ? ? ? }

? ? }

? ? return( ERR_SUCCESS );

}

如果點(diǎn)不亮,你看下枚舉,可能因?yàn)槭菑?fù)合設(shè)備,沒有調(diào)用此函數(shù),另外例子程序測試了部分鍵鼠,兼容性問題可能會(huì)有,操作鍵鼠流程大致如此,如果操作失敗,需要看看具體的監(jiān)控信息,才好判斷問題。

? ? ? ? ? ? ? ? ? ? ? ?


鍵盤燈一般是通過SET_REPORT類命令控制傳輸實(shí)現(xiàn)。例如:

(set)?21 09 00 02? 00 00 01 00

? (out)? 01

我現(xiàn)在的系統(tǒng)是ch559從另一個(gè)單片機(jī)接受out這個(gè)控制字,然后發(fā)送給鍵盤。我想了解一下,現(xiàn)在ch559發(fā)送完set_report后,是怎么把這個(gè)控制字發(fā)送出去的


21 09 xx xx是SET_UP包,后面的01是OUT包,區(qū)別就在包的屬性不同,發(fā)送方法都是一樣的。再說的直接點(diǎn)就是把USBHostTransact( USB_PID_SETUP << 4 | 0x00, 0x00, 200000/20 )的USB_PID_SETUP換成USB_PID_OUT就行了。


大佬?你的問題解決了吧? ? ?我現(xiàn)做的ch559點(diǎn)亮鍵盤燈? 有鍵盤是正常的? 但是有個(gè)鍵盤? ?直接返回了0x20? ?請問如何解決呢


這個(gè)鍵盤你可以插電腦,然后看電腦是是怎么點(diǎn)燈的,通過Bushound抓包看一下


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频