1 / 59
文档名称:

STM32F103驱动W5500网络程序.docx

格式:docx   大小:44KB   页数:59页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

STM32F103驱动W5500网络程序.docx

上传人:sanshenglu2 2021/1/22 文件大小:44 KB

下载得到文件列表

STM32F103驱动W5500网络程序.docx

文档介绍

文档介绍:#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