|
以下是代码,按照官方的流程并且参照了苏大MQX书籍进行一步步的编写,PHY芯片是KZS8041和MQX默认的PHY芯片匹配,使用的硬件是某鸦开发板
关键代码是这样的:
- int_32 error;
- _enet_address address;//mac 地址 等同于char[6]
- IPCFG_IP_ADDRESS_DATA ip_data;
- ip_data.ip = ENET_IPADDR;
- ip_data.mask = ENET_MASKADDR;
- ip_data.gateway = ENET_GATEWAYADDR;
- //step1:创建RTCS组件
- error = RTCS_create();// 备注:内部已经包含IP_init() ICMP_init()等组件
- if(error == RTCS_OK)
- {
- printf("RTCS_create is OK\r\n");
- }
- else
- {
- printf("Failed!!");
- _task_block();
- }
-
- //step2:获得mac地址存在address中
- if(1 == ENET_get_mac_address(DEMOCFG_DEFAULT_DEVICE, ip_data.ip, address))//第一个参数是 1 ,第二个参数是IP地址,第三个是char[6]待更新的数组
- {
- printf("ENET_get_mac_address is OK\n ");
- }
- else
- {
- printf("Failed!!");
- _task_block();
- }
-
- //step3:物理层设备初始化
- error = ipcfg_init_device(DEMOCFG_DEFAULT_DEVICE,address);
- if (error == 0)
- {
- printf (" init ethernet device OK \n");
- }
- else
- {
- printf("Failed!!");
- _task_block();
- }
-
- //step4:绑定IP地址
- error = ipcfg_bind_staticip(DEMOCFG_DEFAULT_DEVICE,&ip_data);
- if(error == IPCFG_OK )
- {
- printf("Bind OK \n");
-
- }
- else
- {
- printf("Failed!!");
- _task_block();
- }
- while(1)
- {
- /* 闪烁小灯 */
- GPIO_ToggleBit(HW_GPIOE, 6);
- _time_delay(200);
- }
复制代码
出现的问题:
1、和公司电脑直连。PING和UDP全都正常
2、和公司电脑通过交换机连,PING不稳定,经常连接超时
3、回家和自家电脑PING,不稳定,经常超时。
这个问题疑惑了好几天了一直没找到原因,真是不甘心呀,工程已经在附件上传了,开发环境是IAR 6.30
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|