CH438速度快了數(shù)據(jù)出錯(cuò)

CH438外接22.1184晶振,內(nèi)部倍頻后,波特率設(shè)置到1.3824M,測(cè)量引腳上數(shù)據(jù)還是正確的,但是讀取寄存器的時(shí)候就出現(xiàn)部分?jǐn)?shù)據(jù)最高位 被置1了。是怎么回事啊。麻煩指導(dǎo)

? ? ? ?while(1){

????? ? ? ?if( 0x02 == (0x02 & ReadCH438Data(REG_LSR1_ADDR)) )

????? ? ? ?{/*CH438 FIFO OVERR*/

????? ? ? ? ? ?WriteCH438Data(REG_FCR1_ADDR,0xC7);? /* 清空FIFO中的數(shù)據(jù),允許FIFO,設(shè)置FIFO 閾值 112字節(jié) */

????? ? ? ?}

? ? ? ?????test_tmp = ReadCH438Data(REG_LSR1_ADDR);

????? ? ? ?if( 0x01 == (0x01 & test_tmp) ){

????? ? ? ? ? ?*p_sdram_staddr = ReadCH438Data(REG_RBR1_ADDR);

????? ? ? ? ? ?p_sdram_staddr++;

????? ? ? ?}

????? ? ? ?if(p_sdram_staddr == (Uint32*)(0xC00004FC)){

????? ? ? ? ? ?p_sdram_staddr = (Uint32*)(SDRAM_STADDR);

????? ? ? ?}

? ? ? ?}



你目前波特率多少,所需帶寬需要多大,建議降低FIFO觸發(fā)字節(jié)到最小試下,觸發(fā)數(shù)據(jù)可用中斷


目前設(shè)置的1.3824M


沒有用觸發(fā)模式,用的直接讀取DRADY位


讀下LSR的值,看下是否有出現(xiàn)相應(yīng)錯(cuò)誤,你代碼里只有438的處理嗎,數(shù)據(jù)帶寬過高,如果不用中斷,可能讀取不及時(shí)


其他代碼都屏蔽了。只有438的讀取。不是所有數(shù)據(jù)出錯(cuò)或者掉數(shù)據(jù)。而是部分?jǐn)?shù)據(jù)的最高位偶發(fā)性錯(cuò)誤。比如 應(yīng)該收 55的收成了D5,也不是每次都是D5,有時(shí)候是55有時(shí)候是D5


把波特率改成921600,就沒有出錯(cuò)了。但是高波特率就不行


您可以量一下對(duì)端高波特率時(shí)是否誤差過大,導(dǎo)致接收時(shí)出現(xiàn)錯(cuò)誤,或者將438調(diào)至高波特試下自收發(fā),排除下本身的FIFO接收問題


線纜限制,線纜高于1M誤碼率就高了


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

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