文档介绍:#include "”
/***************--——- 网络参数变量定义 —-—--***************/
unsigned char Gateway_IP[4];//网关IP地址
unsigned char Sub_Mask[4];ﻩ//子网掩码
unsigned char Phy_Addr[6];ﻩ//物理地址(MAC)
unsigned char IP_Addr[4]; //本机IP地址
unsigned char S0_Port[2]; //端口0的端口号(5000)
unsigned char S0_DIP[4];ﻩ//端口0目的IP地址
unsigned char S0_DPort[2];ﻩ//端口0目的端口号(6000)
unsigned char UDP_DIPR[4];ﻩ//UDP(广播)模式,目的主机IP地址
unsigned char UDP_DPORT[2]; //UDP(广播)模式,目的主机端口号
/***************-—--- 端口的运行模式 -----***************/
unsigned char S0_Mode =3;ﻩ//端口0的运行模式,0:TCP服务器模式,1:TCP客户端模式,2:UDP(广播)模式
#define TCP_SERVERﻩ0x00ﻩ//TCP服务器模式
#define TCP_CLIENT 0x01ﻩ//TCP客户端模式
#define UDP_MODE 0x02ﻩ//UDP(广播)模式
/***************-—-—- 端口的运行状态 —-———***************/
unsigned char S0_State =0; //端口0状态记录,1:端口完成初始化,2端口完成连接(可以正常传输数据)
#define S_INITﻩﻩ0x01 //端口完成初始化
#define S_CONN 0x02ﻩ//端口完成连接,可以正常传输数据
/***************----— 端口收发数据的状态 -----***************/
unsigned char S0_Data;ﻩﻩ//端口0接收和发送数据的状态,1:端口接收到数据,2:端口发送数据完成
#define S_RECEIVEﻩ 0x01 //端口接收到一个数据包
#define S_TRANSMITOK 0x02ﻩ//端口发送一个数据包完成
/***************-—-—- 端口数据缓冲区 —-——-***************/
unsigned char Rx_Buffer[2048];ﻩ//端口接收数据缓冲区
unsigned char Tx_Buffer[2048];ﻩ//端口发送数据缓冲区
unsigned char W5500_Interrupt;ﻩ//W5500中断标志(0:无中断,1:有中断)
/*外部中断4服务程序*/
void EXTI4_IRQHandler(void)
{
if(W5500_INT==0)
ﻩ{
ﻩﻩW5500_Interrupt=1;ﻩ
EXTI-〉PR=1<<4; //清除LINE4上的中断标志位
}
}
void SPI1_Init(void)
{
RCC—>APB2ENR|=1<<2; //PORTA时钟使能
RCC->APB2ENR|=1<<12; //SPI1时钟使能
RCC-〉APB2ENR|=1〈<0;
GPIOA—〉CRL&=0XFFF0FFFF;
GPIOA->CRL|=0X00030000;//PA4通用挽推输出,输出速度50MHz ﻩ
ﻩGPIOA—>ODR|=1〈<4; //PA4上拉 ,设置片选引脚
ﻩ
//这里只针对SPI口初始化
GPIOA->CRL&=0X000FFFFF;
GPIOA->CRL|=0XBBB00000;//PA5.6.7复用功能挽推输出,输出速度50MHz ﻩ
ﻩGPIOA->ODR|=0X7<<5; //
SPI1->CR1&=~(1〈<10);//全双工模式ﻩ
ﻩSPI1->CR1=1<<9; //外部管理NSS引脚
ﻩSPI1-〉CR1&=~(1<〈11);//8bit数据格式ﻩ
SPI1—>CR1&=~(1<〈1); //CPOL=0时空闲模式下SCK为0 CPO