[求助]關(guān)于ch375串口的問題

請(qǐng)問一下,ch375作usb主控芯片時(shí)能否與單片機(jī)通過串口連接?我們大致的想法是把CH375HST.ZIP中的并口連接替換成串口連接,在程序中則是想將原來CH375PRT.C中并口的基本操作:

void CH375_WR_CMD_PORT( unsigned char cmd ) { /* 向CH375的命令端口寫入命令,周期不小于4uS,如果單片機(jī)較快則延時(shí) */ delay2us(); CH375_CMD_PORT=cmd; delay2us(); }

void CH375_WR_DAT_PORT( unsigned char dat ) { /* 向CH375的數(shù)據(jù)端口寫入數(shù)據(jù),周期不小于1.5uS,如果單片機(jī)較快則延時(shí) */ CH375_DAT_PORT=dat; delay1us(); /* 因?yàn)镸CS51單片機(jī)較慢所以實(shí)際上無需延時(shí) */ }

unsigned char CH375_RD_DAT_PORT() { /* 從CH375的數(shù)據(jù)端口讀出數(shù)據(jù),周期不小于1.5uS,如果單片機(jī)較快則延時(shí) */ delay1us(); /* 因?yàn)镸CS51單片機(jī)較慢所以實(shí)際上無需延時(shí) */ return( CH375_DAT_PORT ); } 改成:

void CH375_WR_CMD_PORT( unsigned char mCmd ) { REN0=0; TI0 = 0; TB80 = 1; SBUF0 = mCmd; while ( TI0 == 0 );

}

void CH375_WR_DAT_PORT( unsigned char mData ) { REN0=0; TI0 = 0; TB80 = 0; SBUF0 = mData; while ( TI0 == 0 );

}

unsigned char CH375_RD_DAT_PORT() { REN0=1; while ( RI0 == 0 ); RI0 = 0; return( SBUF0); } 但是在用串口做時(shí)我們遇到的問題是,程序始終停留在while ( RI0 == 0 );也就是說set_usb_mode()中單片機(jī)執(zhí)行完發(fā)送數(shù)據(jù)命令CH375_WR_DAT_PORT( mode );之后始終無法實(shí)現(xiàn)if ( CH375_RD_DAT_PORT()==CMD_RET_SUCCESS ),我現(xiàn)在就是不清楚這是因?yàn)榇跓o法實(shí)現(xiàn)還是375硬件有問題,懇請(qǐng)各位高手指教一下。

(1)CH375主機(jī)方式下,可以通過串口連接,CH375串口波特率默認(rèn)9600,主控單片機(jī)串口配置是否正確? (2)你有沒有啟用串口中斷?中斷程序中有沒有清接收中斷標(biāo)志RI?


我已經(jīng)用串口調(diào)試軟件試過單片機(jī)串口,串口工作正常,波特率為9600。ren=1單片機(jī)的txd,rxd分別連接375的rxd,txd。在主函數(shù)中運(yùn)行如下程序: void check_usb_exist() { UCHAR i; RI=0; TI=0; TB8=1; SBUF=CMD_CHECK_EXIST; while(!TI); TI=0; TB8=0; SBUF=0x0f; while(!TI); TI=0;

while(!RI); RI=0; i=SBUF; return(i); } 如果程序正常運(yùn)行,應(yīng)該返回i=0xf0.但是程序卻始終停留在while(!RI);375晶振工作正常,不知道是什么原因懇請(qǐng)高手指教.


375正常工作沒?25,26電平是否正常? 單片機(jī)程序運(yùn)行后,要延時(shí)40Ms,等待375復(fù)位完成后才能對(duì)其操作


我的串口現(xiàn)在已經(jīng)可以發(fā)數(shù)據(jù)到375,執(zhí)行cmd_check_exist后發(fā)數(shù)據(jù)也可以收到375返回的數(shù)據(jù)。但返回的數(shù)據(jù)卻不是發(fā)出數(shù)據(jù)的取反。我375的25是高,26腳是低與資料里說的一致,不知是否正確。


375復(fù)位完成后25為低電平,26為高電平。按照你的描述,375沒有正常復(fù)位,檢查375晶振起振沒有,V3引腳有沒有對(duì)地接0.01uF的電容


現(xiàn)在375已經(jīng)正常工作,25腳為低.26腳為高(與PDF上說的相反)晶振也是工作在12m。但我運(yùn)行如下程序: #include unsigned char set_check_exist() { unsigned char num=0; SCON1=SCON1&0xfe;//RI=0; SCON1=SCON1&0xfd;//TI=0; SCON1=SCON1|0x08;//TB8=1; SBUF1=CMD_CHECK_EXIST ; while(0==(SCON1&0x02));//while(!TI); SCON1=SCON1&0xfd;//TI=0; SCON1=SCON1&0xf7;//TB8=0; SBUF1=0x0f; while(0==(SCON1&0x02));//while(TI1); SCON1=SCON1&0xfd;//TI=0;

while(0==(SCON1&0x01));//while(!RI); SCON1=SCON1&0xfe;//RI=0; num=SBUF1; return(num); } main() { unsigned char rec=0x00; rec=set_check_exist();

} 卻無法得到375應(yīng)該回復(fù)的數(shù)據(jù)f0,想應(yīng)該是我程序有問題。但這些程序也是從論壇里找到的。因此想請(qǐng)教一下問題在哪里。


我現(xiàn)在用的程序是375HM,問題同樣是在while(!RI)處停下來!我用的串口。375的INT#我接地了!這樣單片機(jī)上就連接了2根線,RXD,TXD!現(xiàn)在正在想為什么會(huì)這樣,375的片選我也接地了?。? 請(qǐng)教高手!QQ:17503954


樓上的,CH375HM是U盤讀寫模塊的程序請(qǐng)勿參考.參考CH375HST,三個(gè)讀寫子函數(shù)見下面 串口設(shè)置為9位串口,剛開始的波特率為9600 參考以下程序: void CH375_PORT_INIT( ) { SCON = 0xD0; 設(shè)置串口為9位數(shù)據(jù) 設(shè)置波特率和其它串口參數(shù) }

void xWriteCH375Cmd( UINT8 mCmd ) { TI = 0; TB8 = 1; SBUF = mCmd; while ( TI == 0 ); }

void xWriteCH375Data( UINT8 mData ) { TI = 0; TB8 = 0; SBUF = mData; while ( TI == 0 ); }

UINT8 xReadCH375Data( void ) { while ( RI == 0 ); RI = 0; return( SBUF ); }


能否給各完整的程序!我這里還是在while(!RI)這里停下了! 謝謝了!


如果并口,TXD,第5腳要接地.


還是不行!依然在那里挺尸! 好像375就沒有工作似的!可是375的管腳我也測量了,26高電平 25低電平!


能否留個(gè)網(wǎng)上聯(lián)系方式?


如果使用CH375串口操作,不知你測試命令用的是哪段程序,按照你2樓貼出來的程序是有錯(cuò)誤的 你的函數(shù)類型是void,而你函數(shù)的返回值類型卻是UCHAR.當(dāng)然得不到正確的數(shù)據(jù)了


還是不行啊 我在這里卡住了!


(1)確保硬件連接是否正確 (2)CH375正常工作,晶振起振,復(fù)位完全 (3)串口的配置正確,CH375默認(rèn)波特率9600,9位方式。 你在對(duì)照一下上述條件,另,不妨把完整的程序貼出來


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

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