完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`` 本帖最后由 真心朋友 于 2013-6-18 10:17 编辑 w5100模块,学习了一下。这个芯片真的不错,集成了硬件tcp/ip协议栈。操作很简单,主要是通过spi接口(当然也支持并口总线操作)配置网络的相关ip 掩码 物理地址 之类的值。 参数配置好后,就是读写通讯的内容,w5100有个中断引脚来指示通讯的完成,我们通过在中断到来之后读取状态值,就会知道是那个端口的中断,以此来进行相关数据解析。 w5100初始化程序: Write_W5100(W5100_MODE,MODE_RST); /*软复位W5100*/ Delay(100); /*延时100ms,自己定义该函数*/ /*设置网关(Gateway)的IP地址,4字节 */ /*使用网关可以使通信突破子网的局限,通过网关可以访问到其它子网或进入Internet*/ for(i=0;i<4;i++) Write_W5100(W5100_GAR+i,Gateway_IP); /*Gateway_IP为4字节unsigned char数组,自己定义*/ /*设置子网掩码(MASK)值,4字节。子网掩码用于子网运算*/ for(i=0;i<4;i++) Write_W5100(W5100_SUBR+i,Sub_Mask); /*SUB_MASK为4字节unsigned char数组,自己定义*/ /*设置物理地址,6字节,用于唯一标识网络设备的物理地址值 该地址值需要到IEEE申请,按照OUI的规定,前3个字节为厂商代码,后三个字节为产品序号 如果自己定义物理地址,注意第一个字节必须为偶数*/ for(i=0;i<6;i++) Write_W5100(W5100_SHAR+i,Phy_Addr); /*PHY_ADDR6字节unsigned char数组,自己定义*/ /*设置本机的IP地址,4个字节 注意,网关IP必须与本机IP属于同一个子网,否则本机将无法找到网关*/ for(i=0;i<4;i++) Write_W5100(W5100_SIPR+i,IP_Addr); /*IP_ADDR为4字节unsigned char数组,自己定义*/ /*设置发送缓冲区和接收缓冲区的大小,参考W5100数据手册*/ Write_W5100(W5100_RMSR,0x55); /*Socket Rx memory size=2k*/ Write_W5100(W5100_TMSR,0x55); /*Socket Tx mempry size=2k*/ /* 设置重试时间,默认为2000(200ms) */ Write_W5100(W5100_RTR,0x07); Write_W5100(W5100_RTR+1,0xd0); /* 设置重试次数,默认为8次 */ Write_W5100(W5100_RCR,8); /* 启动中断,参考W5100数据手册确定自己需要的中断类型 IMR_CONFLICT是IP地址冲突异常中断 IMR_UNREACH是UDP通信时,地址无法到达的异常中断 其它是Socket事件中断,根据需要添加 */ Write_W5100(W5100_IMR,(IMR_CONFLICT|IMR_UNREACH|IMR_S0_INT|IMR_S1_INT|IMR_S2_INT|IMR_S3_INT)); 主程序: do { /* 设置W5100端口 */ W5100_Socket_Set(); Socket_Listen(0); /* 处理W5100中断 */ if(W5100_Interrupt) W5100_Interrupt_Process(); /* 如果Socket0接收到数据 */ if((S0_Data & S_RECEIVE) == S_RECEIVE) { GPIO_SetBits(GPIOB, LED_DRIVE); S0_Data&=~S_RECEIVE; Process_Socket_Data(0); } /* 如果Socket1接收到数据 */ if((S1_Data & S_RECEIVE) == S_RECEIVE) { GPIO_SetBits(GPIOB, LED_DRIVE); S1_Data&=~S_RECEIVE; Process_Socket_Data(1); } /* 如果Socket2接收到数据 */ if((S2_Data & S_RECEIVE) == S_RECEIVE) { GPIO_SetBits(GPIOB, LED_DRIVE); S2_Data&=~S_RECEIVE; Process_Socket_Data(2); } /* 如果Socket3接收到数据 */ if((S3_Data & S_RECEIVE) == S_RECEIVE) { GPIO_SetBits(GPIOB, LED_DRIVE); S3_Data&=~S_RECEIVE; Process_Socket_Data(3);
资料目录介绍: 调试器: STM32开发板 资料目录: 欢迎光临本人空间交流!https://bbs.elecfans.com/home.php?mod=space&uid=1132954&do=thread&view=me&from=space
W5100使用手册.pdf
(658.11 KB, 下载次数: 24
)
W5100中文用户手册.rar
(6.4 MB, 下载次数: 37
)
USB转CAN通讯模块资料.rar
(1.86 MB, 下载次数: 27
)
STM32F103C8使用手册.rar
(1.75 MB, 下载次数: 5
)
W5200网络模块 |
||
相关推荐
|
||
谢谢分享!!!!
|
|
|
|
|
|
飞凌嵌入式-ELFBOARD 硬件知识分享-ELF 2电源电路讲解
800 浏览 0 评论
1569 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程介绍之烧写所需镜像
1394 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程之烧写方法
844 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
1335 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 02:20 , Processed in 0.765683 second(s), Total 64, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号