我把CH582的接收模擬成一個(gè)USB 的HID設(shè)備,當(dāng)接收到2.4G的信號(hào)后,通過USB上傳到主機(jī),現(xiàn)在在無線接收的位置將數(shù)據(jù)發(fā)送出去代碼如下,這樣USB主機(jī)無法接收到數(shù)據(jù):
? ? ? ? case RX_MODE_RX_DATA:
? ? ? ? {
? ? ? ? ? ? if(crc == 1)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? PRINT("crc error\n");
? ? ? ? ? ? }
? ? ? ? ? ? else if(crc == 2)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? PRINT("match type error\n");
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? //DevEP2_OUT_Deal(16);//
? ? ? ? ? ? ? ? ? for (int? i = 0; i < 16; i++ )
? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? pEP2_IN_DataBuf[i] = rxBuf[i];
? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? DevEP2_IN_Deal( 16);
? ? ? ? ? ? ? ? ? GPIOB_InverseBits(GPIO_Pin_18);
}
然而:
修改為如下代碼片段則能夠接收到數(shù)據(jù):
? ? ? ? case RX_MODE_RX_DATA:
? ? ? ? {
? ? ? ? ? ? if(crc == 1)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? PRINT("crc error\n");
? ? ? ? ? ? }
? ? ? ? ? ? else if(crc == 2)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? PRINT("match type error\n");
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? DevEP2_OUT_Deal(16);//
//? ? ? ? ? ? ? ? ? for (int? i = 0; i < 16; i++ )
//? ? ? ? ? ? ? ? ? {
//? ? ? ? ? ? ? ? ? ? pEP2_IN_DataBuf[i] = rxBuf[i];
//? ? ? ? ? ? ? ? ? }
//? ? ? ? ? ? ? ? ? DevEP2_IN_Deal( 16);
//? ? ? ? ? ? ? ? ? GPIOB_InverseBits(GPIO_Pin_18);
}
已知我的DevEP2_OUT_Deal函數(shù)如下,我感覺沒什么區(qū)別,不知道為什么不能接收?
void DevEP2_OUT_Deal( UINT8 l )
{ /* 用戶可自定義 */
? UINT8 i;
? for ( i = 0; i < l; i++ )
? {
? ? pEP2_IN_DataBuf[i] = 0x05;//pEP2_OUT_DataBuf[i]+1;
? }
? DevEP2_IN_Deal( l );
}