現(xiàn)在有個(gè)問(wèn)題,就是我的CH376做主機(jī),連接CP2102(USB轉(zhuǎn)串口芯片)。 通過(guò)上位機(jī)串口軟件向CP2102發(fā)數(shù)據(jù),然后數(shù)據(jù)轉(zhuǎn)發(fā)給CH376,再通過(guò)CPU透?jìng)鳌? 現(xiàn)發(fā)現(xiàn)CH376接收CP2102過(guò)來(lái)的稍大數(shù)據(jù)的時(shí)候,比如600多字節(jié)。會(huì)出現(xiàn)丟數(shù)據(jù)的現(xiàn)象,或是丟包現(xiàn)象。丟數(shù)據(jù)一般是丟掉最后一包的最后幾個(gè)字節(jié),丟包一包是丟了中間的一個(gè)包(每包最大64字節(jié)接收) CH376開(kāi)始接收之前的超次寄存器設(shè)置如下: xWriteCH376Cmd (CMD20_SET_RETRY); //設(shè)置重試次數(shù) xWriteCH376Data( 0x25 ); xWriteCH376Data( 0xCA ); //這里為超時(shí)3s 試50次
然后USB接收處理是在外部中斷里面處理; USB數(shù)據(jù)查詢(xún)是通過(guò)定時(shí)器來(lái)查詢(xún),每個(gè)500ms查詢(xún)一次。 請(qǐng)問(wèn)這樣的設(shè)計(jì)思路是否有問(wèn)題?