当前位置: 首页 > wzjs >正文

新乡做网站的小型 网站 源码

新乡做网站的,小型 网站 源码,网站建设的预算,校园网站建设工作总结说在开头 正点原子F429开发板主芯片采用的是STM32F429IGT6,网络PHY芯片采用的是LAN8720A(V1)和YT8512C(V2),采用的是RMII连接,PHY_ADDR为0;在代码中将会对不同的芯片做出适配。 CubeMX版本:6.6.1; F4芯片组…

说在开头

        正点原子F429开发板主芯片采用的是STM32F429IGT6,网络PHY芯片采用的是LAN8720A(V1)和YT8512C(V2),采用的是RMII连接,PHY_ADDR为0;在代码中将会对不同的芯片做出适配。

        CubeMX版本:6.6.1;

        F4芯片组Pack包版本:STM32Cube FW_F4 V1.27.0;

        本文的基础代码为上一篇文章得到的代码:基于正点原子阿波罗F429开发板的LWIP应用(1)——网络ping通-CSDN博客

1、静态IP和DHCP切换设置

1.1、原理说明

        在LWIP协议中通过“lwipopts.h”文件来对LWIP的各功能进行使能。而其中的“#define LWIP_DHCP 1”语句则是用来设置DHCP功能的,当LWIP_DHCP的值为1时则使能DHCP功能;若LWIP_DHCP的值为1则采用静态IP。

        DHCP和静态IP两中模式的区别就是IP的来源;反映到代码中就是:IP由谁设置。

        当采用DHCP时初始化ETH外设时将网卡的IP、子网掩码和网关都设为NULL,初始化结束后会通过“dhcp_start(&gnetif);”函数来启动DHCP服务向网关发送分配IP请求,只有当网关给它分配了IP之后才可以ping通,这也是为什么上篇文章最后强调“一定要接入路由器”的原因,因为电脑网口和交换机都不具备IP分配能力,只有路由器才具有;

        当采用静态IP的时候初始化ETH外设1时就会将IP信息赋值给网卡,初始化完成后模块的IP就已经可以ping通。

1.2、代码修改

//lwip.c开头增加以下代码:
uint8_t IP_ADDRESS[4] = { NULL };
uint8_t NETMASK_ADDRESS[4] = { NULL };
uint8_t GATEWAY_ADDRESS[4] = { NULL };//修改void MX_LWIP_Init(void)函数为以下内容:
void MX_LWIP_Init(void)
{
#if(LWIP_DHCP == 0)IP_ADDRESS[0] = 192;//自定义IPIP_ADDRESS[1] = 168;IP_ADDRESS[2] = 1;IP_ADDRESS[3] = 251;NETMASK_ADDRESS[0] = 255;//自定义子网掩码NETMASK_ADDRESS[1] = 255;NETMASK_ADDRESS[2] = 252;NETMASK_ADDRESS[3] = 0;GATEWAY_ADDRESS[0] = 192;//自定义默认网关GATEWAY_ADDRESS[1] = 168;GATEWAY_ADDRESS[2] = 1;GATEWAY_ADDRESS[3] = 1;
#endif	/* Initilialize the LwIP stack without RTOS */lwip_init();/* IP addresses initialization with DHCP (IPv4) */#if(LWIP_DHCP == 0)IP4_ADDR(&ipaddr, IP_ADDRESS[0], IP_ADDRESS[1], IP_ADDRESS[2], IP_ADDRESS[3]);IP4_ADDR(&netmask, NETMASK_ADDRESS[0], NETMASK_ADDRESS[1] , NETMASK_ADDRESS[2], NETMASK_ADDRESS[3]);IP4_ADDR(&gw, GATEWAY_ADDRESS[0], GATEWAY_ADDRESS[1], GATEWAY_ADDRESS[2], GATEWAY_ADDRESS[3]);
#elif(LWIP_DHCP == 1)ipaddr.addr = 0;netmask.addr = 0;gw.addr = 0;
#endif/* add the network interface (IPv4/IPv6) without RTOS */netif_add(&gnetif, &ipaddr, &netmask, &gw, NULL, &ethernetif_init, &ethernet_input);/* Registers the default network interface */netif_set_default(&gnetif);#if(LWIP_DHCP == 0)printf("\r\n网卡en的MAC地址为:................%d.%d.%d.%d.%d.%d\r\n静态IP地址........................%d.%d.%d.%d\r\n子网掩码..........................%d.%d.%d.%d\r\n默认网关..........................%d.%d.%d.%d\r\n",gnetif.hwaddr[0], gnetif.hwaddr[1], gnetif.hwaddr[2], gnetif.hwaddr[3], gnetif.hwaddr[4], gnetif.hwaddr[5],IP_ADDRESS[0], IP_ADDRESS[1], IP_ADDRESS[2], IP_ADDRESS[3], NETMASK_ADDRESS[0], NETMASK_ADDRESS[1], NETMASK_ADDRESS[2], NETMASK_ADDRESS[3], GATEWAY_ADDRESS[0], GATEWAY_ADDRESS[1], GATEWAY_ADDRESS[2], GATEWAY_ADDRESS[3] );
#endif /* USE_DHCP */ if (netif_is_link_up(&gnetif)){/* When the netif is fully configured this function must be called */netif_set_up(&gnetif);}else{/* When the netif link is down this function must be called */netif_set_down(&gnetif);}/* Set the link callback function, this function is called on change of link status*/netif_set_link_callback(&gnetif, ethernet_link_status_updated);/* Create the Ethernet link handler thread */#if(LWIP_DHCP == 1)/* Start DHCP negotiation for a network interface (IPv4) */dhcp_start(&gnetif);
#endif
/* USER CODE BEGIN 3 *//* USER CODE END 3 */
}

        修改完之后即可通过修改“lwipopts.h”文件中的“LWIP_DHCP”的值来设置IP的模式,当“LWIP_DHCP”的值为1时表示启用DHCP模式;为0时表示使用静态IP模式,这时候就可以通过修改lwip.c中“IP_ADDRESS”、“NETMASK_ADDRESS”和“GATEWAY_ADDRESS”这三个数组的值来设置模块的IP。

        修改完之后编译同样是0警告0错误,烧录之后模块的IP也能正常ping通。(注意:1、当采用静态IP时需要根据实际情况来设置模块的IP参数,如果不懂请自行百度下IP、子网掩码和默认网关这三个参数之间的关系。2、当采用静态IP模式时需要注意局域网下IP冲突的问题。)

2、MAC地址修改

       MAC地址也叫网络设备的硬件地址,每个设备不同且有特定含义。MAC地址都是由IEEE的注册管理机构RA分配给厂商,分配时只分配前三个字节,后三个字节由各厂商自行分配。 IEEE组织会定期更新oui文件,用于查询mac地址厂商,Oui文件地址: http://standards.ieee.org/develop/regauth/oui/oui.txt

        在通过CubeMX配置的时候可以通过修改"ETH"——>“Parameter Settings”——>“Ethernet MAC Address”的值来修改MAC地址。如下图:

        在生成代码后LWIP的MAC地址是通过“ethernetif.c”文件中的“low_level_init”函数中MACAddr数组的值来设置的,通过修改MACAddr的值即可修改LWIP的MAC地址。在实际开发中会通过一定的规律来设置芯片的MAC地址以保证每个产品的MAC地址不一样,比如芯片ID等。

我们可以通过一个免费软件(Advanced IP Scanner(绿色版))来查看模块IP对应的MAC地址,如下图:

由于本章节内容简单,改动不大就不上传源代码了。


文章转载自:

http://pAk1FtRY.mzbyL.cn
http://81qMyPeR.mzbyL.cn
http://OIErB49P.mzbyL.cn
http://stcwrxGZ.mzbyL.cn
http://SK6w44AD.mzbyL.cn
http://gFLqUO1b.mzbyL.cn
http://1X4ywyGy.mzbyL.cn
http://A1ZhMSVE.mzbyL.cn
http://ypGyXdWs.mzbyL.cn
http://a7rDnEXj.mzbyL.cn
http://PEc2BY1h.mzbyL.cn
http://m0zulFMt.mzbyL.cn
http://QgqQHA2B.mzbyL.cn
http://GxpNAVzJ.mzbyL.cn
http://Dbjytcll.mzbyL.cn
http://RLZKZaG4.mzbyL.cn
http://kI3D8a2o.mzbyL.cn
http://e1NZ4ZAm.mzbyL.cn
http://X4zZWLv1.mzbyL.cn
http://4v4gJB0L.mzbyL.cn
http://0ozwjNPT.mzbyL.cn
http://azRSSqbW.mzbyL.cn
http://M8gfEcsr.mzbyL.cn
http://yS3eYQqK.mzbyL.cn
http://yb7cH6W7.mzbyL.cn
http://4ySJiEP5.mzbyL.cn
http://tv9dtRV1.mzbyL.cn
http://CUBH1rGt.mzbyL.cn
http://za8eo7nm.mzbyL.cn
http://csiZwnfB.mzbyL.cn
http://www.dtcms.com/wzjs/686026.html

相关文章:

  • 长春制作门户网站的公司.mom域名可以做网站吗
  • 驻马店市住房和城乡建设局网站首页电商平面设计
  • 游戏网站开发试验报告有梦商城公司网站
  • 做网站泰安免费优化网站
  • wordpress软件站长沙互联网公司排名
  • 天水网站制作网站开发需要哪些部门
  • 宁波网站建设托管长春建设集团招聘信息网站
  • 竞价网站移动端膜结构网站推广怎么做
  • 卡密提取网站怎么做年轻人必备的十大网站
  • 网站建设进度以及具体内容十大网络推广公司
  • 视差网站手机网站优化排名首页
  • 网站建设流量入口如何做贴吧类网站多钱
  • 公司网站域名申请百度竞价点击神器下载安装
  • 临沂企业网站建设公司建网站 必须学html吗
  • 百度地图手机网站开发网站和软件有什么区别
  • 国外h5制作网站深圳手机移动网站开发
  • 企业网站改版项目描述wordpress 获取指定文章标题
  • 做设计找参考的设计网站有哪些工伤做实网站
  • 传统文化网站建设方案怎么创造网站
  • 网站开发算是软件开发自字网站建设教程视频
  • 网站尾部设计全心代发17做网站
  • 网站群的建设东莞市美时家具营销型网站
  • 百度网站排名哪家好网站做的文字乱码
  • 网站建设销售总结apache搭建wordpress如何
  • 做网站编辑的发展方向晋升数码产品网站建设策划书
  • 网站建设属于哪个分类编码济南高端网站建设公司
  • 株洲网站建设报价方案有哪些比较好的企业网站建设
  • 宿州银行网站建设沈阳化工大学建设工程
  • 顺德网站制作公司wordpress置顶重复
  • 网站备案信息找回网站 公司形象