摸着W5500学习计算机网络6——移植W5500官方库文件并实现TCP连接

PS:KEIL的工程文件我已经上传了,需要的自己下载了看看。

首先下载官方库文件,官方库的下载地址如下:

http://wizwiki.net/wiki/doku.php?id=products:w5500:driver

下载后,添加这几个文件到keil里面

第一步:在wizchap_conf.h中,修改芯片型号。初始默认的是W5100

第二步:有六个函数需要自己写一下。分别对应下图中的六个指针函数(当然,还有SPI和GPIO的初始化函数要自己写,这里就不贴了)

实现的代码如下:

void W5500_CrisEnter(void)
{
    DISABLE_INT();
}

void W5500_CrisExit(void)
{
    ENABLE_INT();
}

void W5500_CS_Select(void)
{
	W5500_CS_0();
}

void W5500_CS_Deselect(void)
{
	W5500_CS_1();
}
//SPI写一个字节
void bsp_SPI_WriteOneByte(u8 _ucByte)
{
	while (SPI_I2S_GetFlagStatus(SPI_HARD, SPI_I2S_FLAG_TXE) == RESET);
	SPI_I2S_SendData(SPI_HARD, _ucByte);

	while (SPI_I2S_GetFlagStatus(SPI_HARD, SPI_I2S_FLAG_RXNE) == RESET);
	SPI_I2S_ReceiveData(SPI_HARD);
}

//SPI读取一个字节
u8 bsp_SPI_ReadOneByte(void)
{
	u8 read = 0;
	while (SPI_I2S_GetFlagStatus(SPI_HARD, SPI_I2S_FLAG_TXE) == RESET);
	SPI_I2S_SendData(SPI_HARD, 0);

	while (SPI_I2S_GetFlagStatus(SPI_HARD, SPI_I2S_FLAG_RXNE) == RESET);
	read = SPI_I2S_ReceiveData(SPI_HARD);
	return read;
}

第三步:这六个函数写好后,需要通过W5500库函数自带的注册函数,来将我们自己写的函数和库函数对应起来。

函数代码如下所示:

第四步:设置W5500的IP地址、网关之类的参数。

这些信息在库函数中也有一个结构体对应:

这个结构体里面的信息要自己定义下,如下图所示:

第五步:写个函数检查是否连接正常,并且写网络参数到W5500芯片里面。如下图。

到了这里,W5500官方库的移植就都搞好了。然后来搞个TCP_SEVER的例程来发送数据试试。下面是代码截图:

然后main函数里面就像下面这样,初始化一下,然后就跳倒while里面。

这里我在试的时候有个情况,就是本来bsp_DetectPhylink()是在while外面的,但是我发现刚上电初始化的时候,硬件好像检测不到,要放到while里面多循环几次,才能正常的检测到硬件。

最后是测试结果:

  • 2
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值