請(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)各位高手指教一下。