使用W5500+KL27实现以太网转串口RS232、RS485透传功能:
将W5500的库移植到工程中,然后就是初始化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);
}
然后程序中循环处理就可以,将收到的数据,再发回去。
测试单包1956字节收发:
连续3ms,自动收发,不丢包。(测试:一包1956字节,连续2ms发送,有丢包)
测试连续3ms自动收发网速: