我用CH375做主機(jī),用的它的串口,單片機(jī)是AVR的ATmega8,我參照貴網(wǎng)站上的51單片機(jī)與CH375通過(guò)串口進(jìn)行通訊的例子編寫(xiě)了CH375讀寫(xiě)數(shù)據(jù)的3個(gè)程序,請(qǐng)版主幫我看下對(duì)不對(duì),我驅(qū)動(dòng)不了打印機(jī)了,原來(lái)用并口已經(jīng)調(diào)通了。 //串口初始化子程序 void USART_Init(void) { UCSRA = 0x02; /*倍速*/ UCSRB = 0x1C; /*允許接收和發(fā)送,UCSZ2設(shè)為1*/ UCSRC = 0x86; /*9位數(shù)據(jù),UCSZ1,UCSZ0設(shè)為1,這樣設(shè)置成9位數(shù)據(jù)*/ UBRRH = 0x00; UBRRL = 0x00; /*設(shè)置波特率,1M*/ } void xWriteCH375Cmd(unsigned char mCmd) { delay_2us( ); /*至少延時(shí)2us*/ TXCIE==0; TXB8==1; //第九位為1寫(xiě)命令,為0寫(xiě)數(shù)據(jù) UDR=mCmd; while(TXCIE==0); } void xWriteCH375Data(unsigned char mData) { delay_2us( ); /*至少延時(shí)2US*/ TXCIE==0; TXB8==0; //第九位為0,寫(xiě)數(shù)據(jù) UDR=mData; while(TXCIE==0); } unsigned char xReadCH375Data(void) { //unsigned char temp; delay_2us( ); /*至少延時(shí)1.2us*/ while(RXCIE==0); RXCIE==0; return(UDR); }
查看: 4287
回復(fù): 5
急!求助CH375串口通訊
熱門(mén)產(chǎn)品 :
CH182: 以太網(wǎng)PHY收發(fā)器芯片
波特率是1M啊?CH375的默認(rèn)波特率是9600,不匹配阿
我在主程序main中通過(guò)SET_BAUDRATE命令已經(jīng)設(shè)置成1M了, xWriteCH375Cmd(0x02); xWriteCH375Data(0x03); xWriteCH375Data(0xFA);
單片機(jī)必須先在9600下給375設(shè)置新的波特率 剛開(kāi)始調(diào)試,為什么用這么高的波特率,這不是增加了不穩(wěn)定的因素了,還是現(xiàn)在9600下調(diào)試通過(guò)后,再改吧
改成了9600還是沒(méi)反應(yīng),
1、檢查375的晶振,復(fù)位是否正常 2、現(xiàn)在問(wèn)題處在哪一步了?先做測(cè)試命令,確保串口通訊是正常的 還有用示波器看下單片機(jī)的串口能否發(fā)出數(shù)據(jù),且波特率對(duì)不對(duì) 另,串口模式下,TXD不能接地
請(qǐng)勿發(fā)布廣告和違法內(nèi)容, 代碼可以選擇編輯器代碼語(yǔ)言格式, 更易他人閱讀幫助您, 或者留下聯(lián)系方式,以便更好更快服務(wù)您
只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄