求指点9B96以太网问题!

2019-03-24 14:48发布

小弟用自己做的板子(主芯片是9L97的和9B96相似)从最基本的LWip调试以太网模块,我用论坛里academic的帖子里的第一个程序http://bbs.eeworld.com.cn/thread-222963-1-2.html编译通过后下载到板子里,用交叉网线把开发板和PC相连,程序下载进去以后 PC机右下角网络连接的小红叉消失了,但是 我在PC上面ping 192.168.0.100 却ping不通。不知道是哪里出现了错误?急切盼望高手出现指点一二 。 下面附上我所用的程序: #include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "inc/hw_nvic.h"
#include "inc/hw_types.h"
#include "inc/hw_sysctl.h" #include "driverlib/ethernet.h"
#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/sysctl.h"
#include "driverlib/systick.h"
#include "utils/lwiplib.h"   #define My_Mac_ID  {0X00,0x14,0x97,0x0F,0x1D,0xE3}  //存储以太网控制器的物理地址,即MAC地址 #define MY_IP_ID        {192,168,0,100}                   //以太网通信的IP地址
#define IP_MARK_ID    {255,255,255,0}             //255.255.255.0,子网掩码
#define MY_GATEWAY_ID   {192,168,0,1}                     //以太网通信的网关地址
static const unsigned char pucMACAddress[]=My_Mac_ID;
static const unsigned char IPAddress[] = MY_IP_ID;
static const unsigned char NetMaskAddr[] = IP_MARK_ID;
static const unsigned char GwWayAddr[] = MY_GATEWAY_ID; const static unsigned char UDPData[]="LwIP UDP客户端在Luminary微控制器上的测试 "; #define SYSTICKHZ                100
#define SYSTICKMS               (1000 / SYSTICKHZ)
#define SYSTICKUS               (1000000 / SYSTICKHZ)
#define SYSTICKNS               (1000000000 / SYSTICKHZ)
void
SysTickIntHandler(void)
{
   
  lwIPTimer(SYSTICKMS); }
int
main(void)
{
 
    struct ip_addr ulIPAddr,ulNetMask,ulGWAddr;
   struct udp_pcb *Pcb1;
   struct ip_addr ipaddr1;
   struct pbuf *p;       if(REVISION_IS_A2)
    {
        SysCtlLDOSet(SYSCTL_LDO_2_75V);
    }     SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
                   SYSCTL_XTAL_8MHZ);
  
    SysCtlPeripheralEnable(SYSCTL_PERIPH_ETH);
    SysCtlPeripheralReset(SYSCTL_PERIPH_ETH);     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
    GPIOPinTypeEthernetLED(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3);       SysTickPeriodSet(SysCtlClockGet() / SYSTICKHZ);
    SysTickEnable();
    SysTickIntEnable();     IntMasterEnable();
 
        IP4_ADDR(&ulIPAddr,IPAddress[3],IPAddress[2],IPAddress[1],IPAddress[0]);
        IP4_ADDR(&ulNetMask,NetMaskAddr[3],NetMaskAddr[2],NetMaskAddr[1],NetMaskAddr[0]);
        IP4_ADDR(&ulGWAddr,GwWayAddr[3],GwWayAddr[2],GwWayAddr[1],GwWayAddr[0]);
        lwIPInit(pucMACAddress,ulIPAddr.addr, ulNetMask.addr, ulGWAddr.addr, IPADDR_USE_STATIC);
  
   p = pbuf_alloc(PBUF_RAW,sizeof(UDPData),PBUF_RAM);
   p->payload=(void *)UDPData;
  
  IP4_ADDR(&ipaddr1,192,168,0,127); //这里是PC机的IP地址。
  Pcb1 = udp_new();
 
  udp_bind(Pcb1,IP_ADDR_ANY,1025);   /* 绑定到本地IP地址,设端口为1025,客户端一般为偶数。*/   udp_connect(Pcb1,&ipaddr1,1025);    /* 连接PC机上的1025号端口,其实服务器的端口一般为奇数。*/
    while(1)
  {
    udp_send(Pcb1,p);
    SysCtlDelay(SysCtlClockGet()/3);
  }
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
hlx3012
1楼-- · 2019-03-25 09:53
 精彩回答 2  元偷偷看……
Study_Stellaris
2楼-- · 2019-03-25 12:45
是的,能用 9B96 例程最好。
但是 9B96 的例程有一些对 QVGA 屏的配置,如果不知道怎么改,直接下进去还是有问题的。
轻轨002
3楼-- · 2019-03-25 13:28
因为下面这两个头文件找不到我把这两个头文件#include "drivers/kitronix320x240x16_ssd2119_8bit.h"
#include "drivers/set_pinout.h"相关的一些语句删掉后
像PinoutSet();
Kitronix320x240x16_SSD2119Init();这一类的语句;
编译下载到板子后 访问192.168.1.101还是没反应  
看来是硬件的问题了。。。
Study_Stellaris
4楼-- · 2019-03-25 16:55
 精彩回答 2  元偷偷看……
hlx3012
5楼-- · 2019-03-25 17:00

1、把附件中9B92的例程烧写进去。把电脑的IP地址设为169.254.254.12

2、用串口监视会有如下信息: KKK3.JPG

[ 本帖最后由 hlx3012 于 2012-2-14 13:02 编辑 ]
hlx3012
6楼-- · 2019-03-25 19:56

3、用TI的finder。exe可以看到IP地址(我用的是9B96,但是9B92的程序是可以在9B96上运行的)

kkk1.JPG

 

4、在IE中输入IP地址,可以看到网页:

kkk2.JPG

 

5、如果按照这些步骤操作,第四第三步不成功说明是硬件有问题

 

[ 本帖最后由 hlx3012 于 2012-2-14 13:09 编辑 ]