CH375B與51串口通信問(wèn)題[求助]

在調(diào)試51和CH375B的串口通信, 本網(wǎng)站上下載了通用程序,用的通信是并口的,我把通信方式改成了串口,現(xiàn)在我用的是仿真器來(lái)調(diào)試,只看到發(fā)出去的數(shù)據(jù),從375上讀不到數(shù)據(jù).CH375工作正常(25腳L,26腳為H)請(qǐng)幫我看看

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

void CH375_WR_CMD_PORT( unsigned char mCmd )//向CH375的命令端口寫入命令 { REN=0; TI = 0; TB8 = 1; SBUF = mCmd; while ( TI == 0 ); }

/* 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í)際上無(wú)需延時(shí) } */ void CH375_WR_DAT_PORT( unsigned char mData )//向CH375的數(shù)據(jù)端口寫入數(shù)據(jù) { REN=0; TI = 0; TB8 = 0; SBUF = mData; while ( TI == 0 );

}

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

*/

unsigned char CH375_RD_DAT_PORT() { REN=1; while ( RI == 0 ); RI = 0; return( SBUF);

51串口設(shè)置 void mInitSTDIO( ) { SCON = 0x50;/*串行口控制寄存器:SM0 SM1 SM2 REN TB8 RB8 TI RI 01010000( 模式1;功能8位UART;波特率為 可變)*/ PCON = 0x00;//電源控制寄存器,SMOD=00 TMOD = 0x21;/*定時(shí)/記數(shù) 模式控制寄存器,波特率發(fā)生器T1工作在模式2上,自動(dòng)裝載初值。*/ TH1 = 0xfd; /* 晶振11.0592MHz,波特率9600bps*/

TR1 = 1;//啟動(dòng)定時(shí)器T1 TI = 1;//發(fā)送完畢標(biāo)志置位,這個(gè)很得要,因?yàn)閜rintf會(huì)檢測(cè)這個(gè)位是否為1,為0不工作 EX0=1; EA=0; }


程序運(yùn)行到set_usb_mode里的if ( CH375_RD_DAT_PORT()==CMD_RET_SUCCESS )就停下了 ,跳不出來(lái) void main() { unsigned char i; mInitSTDIO( ); delayms(250); set_usb_mode( 6 ); /* 設(shè)置USB主機(jī)模式, 如果設(shè)備端是CH37X, 那么5和6均可 */

下是子程序

unsigned char set_usb_mode( unsigned char mode ) { /* 設(shè)置CH37X的工作模式 */ unsigned char i; CH375_WR_CMD_PORT( CMD_SET_USB_MODE ); CH375_WR_DAT_PORT( mode ); endp6_mode=endp7_mode=0x80; /* 主機(jī)端復(fù)位USB數(shù)據(jù)同步標(biāo)志 */ for( i=0; i!=100; i++ ) { /* 等待設(shè)置模式操作完成,不超過(guò)30uS */ if ( CH375_RD_DAT_PORT()==CMD_RET_SUCCESS ) return( TRUE ); /* 成功 */ } return( FALSE ); /* CH375出錯(cuò),例如芯片型號(hào)錯(cuò)或者處于串口方式或者不支持 */ }


TH1 = 0xfd應(yīng)該為TH1 = 0xfA


hcn:你好,我選用的是11.0592M晶振,SMOD=0(不倍頻),方式1.波特率是9600bps 如果改SMOD為1,則TH1=0xfa, 現(xiàn)在選用SMOD為0,則TH1=0xfd, 這樣計(jì)算是否有問(wèn)題?


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

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