使用W5500+KL27實(shí)現(xiàn)以太網(wǎng)轉(zhuǎn)串口RS232、RS485透?jìng)鞴δ埽?/p>
將W5500的庫(kù)移植到工程中,然后就是初始化KL27的SPI:
void w5500_spi_init()
{
PORT_Init(PORTB, PORT_MODULE_ALT1_MODE, PIN_0|PIN_1, 0, NULL); //PTB0 - SPI1_RST -> W5500 RST
GPIO_Init(GPIOB, GPIO_PIN_OUTPUT, PIN_0);
GPIO_Clr (GPIOB, PIN_0);
delay(0xfff);
GPIO_Set (GPIOB, PIN_0);
delay(0xffff);
GPIO_Init (GPIOB, GPIO_PIN_INPUT,PIN_1);
PORT_Init(PORTD, PORT_MODULE_ALT1_MODE, PIN_4, 0, NULL); //PTB0 - SPI1_RST -> W5500 RST
GPIO_Init(GPIOD, GPIO_PIN_OUTPUT, PIN_4);
GPIO_Set (GPIOD, PIN_4);
//SPI1 PTD4/5/6/7 CS/SCK/MOSI/MISO
PORT_Init(PORTD, PORT_MODULE_ALT2_MODE, PIN_5|PIN_6|PIN_7, 0, NULL);
SPI1_Init(SPI_MODULE_DIV2_8B_POLL_CONFIG,NULL,0,NULL);
}
然后程序中循環(huán)處理就可以,將收到的數(shù)據(jù),再發(fā)回去。
測(cè)試單包1956字節(jié)收發(fā):
連續(xù)3ms,自動(dòng)收發(fā),不丟包。(測(cè)試:一包1956字節(jié),連續(xù)2ms發(fā)送,有丟包)
測(cè)試連續(xù)3ms自動(dòng)收發(fā)網(wǎng)速: