可以把CH592的USB HID代碼復(fù)用到V208上嗎

說起來也很奇怪 按照V208的例程寫了個鍵盤程序

從按鍵到出字會產(chǎn)生肉眼可見的延遲 而且似乎這個概率隨著上電時間增加


但是在CH582和592上寫的程序似乎就沒有這樣的問題


如果可以復(fù)用,是否可以提示一下有哪些改寫的注意點(diǎn)

你好,這個現(xiàn)象沒有碰到過,可以拉個IO看一下,按鍵按下到進(jìn)入USB IN完成中斷之間的時間間隔,推薦在V208EVT中的鍵鼠例程上修改。


確實是按照例程改的


我試過在按鍵上綁一個LED 燈看起來和按鈕沒有問題


所以我感覺更像是USBFS_Endp_DataUp在掉包或者中斷有問題


void Device_USB_Protocol(void)
{
??? if (USBFS_DevEnumStatus)
??? {
??????? if (Flag_EP1)
??????? {
??????????? USB_Status_EP1 = USBFS_Endp_DataUp(DEF_UEP1, Report_EP1, sizeof(Report_EP1), DEF_UEP_CPY_LOAD);
??????????? if(USB_Status_EP1 == READY)
??????????? {
??????????????? Flag_EP1 = 0;
??????????? }
??????? }
??? }
}


void Matrix_Scan(void)
{
??? Scan_Result = GPIO_ReadInputData(Scan_Col_Port) & Scan_Col_Mask;
??? if (Scan_Result != Scan_Buffer[0])
??? {
??????? if (temp == 0)
??????? {
??????????? Report_EP1[2] = 0x04;
??????? }
??????? else
??????? {
??????????? Report_EP1[2] = 0x00;
??????? }
??????? temp = 1 - temp;
??????? Scan_Buffer[0] = Scan_Result;
??????? Flag_EP1 = 1;
??? }

}

void TIM3_IRQHandler(void)
{
??? if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
??? {
??????? TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
??????? Matrix_Scan();
??? }
}


你好

  1. 可以對比一下例程的響應(yīng)速度。

  2. USB的機(jī)制:設(shè)備需要先裝載數(shù)據(jù),等主機(jī)發(fā)IN令牌,然后再上傳數(shù)據(jù),如果描述符的間隔是10,全速就是10ms 1個IN。

  3. 變量在中斷和主函數(shù)中同時使用,加上volatile修飾。

如果找不到問題,代碼可以發(fā)我郵箱zc@wch.cn



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

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