/產(chǎn)初始化RTL8019AS,PAGE2寄存器只讀,PAGE3寄存器不是NE2000兼容的,均不用設(shè)置材/使用0x40-0x4b為網(wǎng)卡的發(fā)送緩沖區(qū),共12頁(yè),剛好存儲(chǔ)2個(gè)最大的以太網(wǎng)數(shù)據(jù)包。使用0x4c-0x7f為網(wǎng)卡的接收緩沖區(qū),共52頁(yè),因此PSTART=0x4c,PSTOP=0x80(0x80為停止頁(yè),接收緩沖區(qū)直到Ox7f,不包括0x80),剛開始時(shí),網(wǎng)卡沒有接收到任何數(shù)據(jù)包,因此BNRY設(shè)置為指向第一個(gè)接收緩沖區(qū)的頁(yè)0x4c)*/void RTL8019lnitO REG00=0×21;/選擇頁(yè)0的寄存器,網(wǎng)卡停止運(yùn)行,因?yàn)檫€沒有初始化REGO1=Ox4c;/寄存器PSTART,設(shè)置接收緩沖區(qū)的起始頁(yè)的地址REG02=0×80;/寄存器PSTOP,設(shè)置接收緩沖區(qū)的結(jié)束頁(yè)的地址REG03=0x4c;//寄存器BNRY,設(shè)置為指向第一個(gè)接收緩沖區(qū)的頁(yè)Ox4c(用作讀指針)REG04=0x40;/寄存器TPSR.發(fā)送起始頁(yè)地址初始化為指向第一個(gè)發(fā)送緩沖區(qū)的頁(yè)REGOx=0xce;/*接收配置寄存器RCR,設(shè)置為僅接收自己地址的數(shù)據(jù)包以及廣播地址和多點(diǎn)播送地址數(shù)據(jù)包,小于64字節(jié)的包丟棄,校驗(yàn)錯(cuò)的數(shù)據(jù)包不接收材REG0d=0xe0;/發(fā)送配置寄存器TCR,設(shè)置為啟用crc自動(dòng)生成和校驗(yàn),正常模式工作REG0e=0xc8;/*數(shù)據(jù)配置寄存器DCR,設(shè)置為使用FIFO緩存,普通模式,8位數(shù)據(jù)傳輸,字節(jié)順序?yàn)楦呶蛔止?jié)在前,低位字節(jié)在后*制REGOf=0x00;/中斷屏蔽資存器IMR,設(shè)置為屏蔽所有中斷SelectPage(l);/選擇頁(yè)l的寄存器REG07-0x4d;/寄存器CURR.設(shè)置為指向當(dāng)前正在寫的頁(yè)的下一頁(yè)(用作寫指針)
標(biāo)簽:
51單片機(jī)
C語(yǔ)言
上傳時(shí)間:
2022-06-24
上傳用戶: