OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4001|回复: 14

实验STM32F407 + LWIP实验问题

[复制链接]

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
发表于 2019-5-12 21:48:19 | 显示全部楼层 |阅读模式
1金钱
如题,在做STM32F407 + LWIP实验中,始终连接不上,程序用的原子哥的代码:
int main(void)
{
        u8 t;
        u8 key;
        delay_init();               //延时初始化
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
//        uart_init(115200);           //串口波特率设置
//        usmart_dev.init(84);         //初始化USMART
//        LED_Init();                          //LED初始化
//        KEY_Init();                          //按键初始化
//        LCD_Init();                         //LCD初始化
//        FSMC_SRAM_Init();                //初始化外部SRAM  
//        BEEP_Init();                        //蜂鸣器初始化
//        My_RTC_Init();                  //RTC初始化
//        Adc_Init();                          //ADC初始化
//        Adc_Temperate_Init();         //内部温度传感器初始化
        TIM3_Int_Init(999,839); //100khz的频率,计数1000为10ms
        mymem_init(SRAMIN);                //初始化内部内存池
//        mymem_init(SRAMEX);                //初始化外部内存池
//        mymem_init(SRAMCCM);        //初始化CCM内存池
//        POINT_COLOR = RED;                 //红色字体
        lwip_test_ui(1);                //加载前半部分UI
        t = 0;
        //先初始化lwIP(包括LAN8720初始化),此时必须插上网线,否则初始化会失败!!
//        LCD_ShowString(30,110,200,16,16,"lwIP Initing...");
        while(lwip_comm_init()!=0)
        {
//                LCD_ShowString(30,110,200,16,16,"lwIP Init failed!");
                delay_ms(1200);
//                LCD_Fill(30,110,230,110+16,WHITE);//清除显示
//                LCD_ShowString(30,110,200,16,16,"Retrying...");  
        }

//        LCD_ShowString(30,110,200,16,16,"lwIP Init Successed");
//        //等待DHCP获取
//         LCD_ShowString(30,130,200,16,16,"DHCP IP configing...");
        while((lwipdev.dhcpstatus!=2)&&(lwipdev.dhcpstatus!=0XFF))//等待DHCP获取成功/超时溢出
        {
                lwip_periodic_handle();
        }
        lwip_test_ui(2);//加载后半部分UI
        httpd_init();        //HTTP初始化(默认开启websever)
        while(1)
        {
//                key=KEY_Scan(0);
//                switch(key)
//                {
//                        case KEY0_PRES://TCP Server模式
//                                tcp_server_test();
//                                lwip_test_ui(3);//重新加载UI
//                                break;
//                        case KEY1_PRES://TCP Client模式
//                                tcp_client_test();
//                                lwip_test_ui(3);//重新加载UI
//                                break;
//                        case KEY2_PRES://UDP模式
//                                udp_demo_test();
//                                lwip_test_ui(3);//重新加载UI
//                                break;
//                }
                lwip_periodic_handle();
//                delay_ms(2);
//                t++;
//                if(t==100)LCD_ShowString(30,230,200,16,16,"Please choose a mode!");
//                if(t==200)
//                {
//                        t=0;
//                        LCD_Fill(30,230,230,230+16,WHITE);//清除显示
//                        LED0=!LED0;
//                }
        }
}



程序能跑到主函数,lwipdev.dhcpstatus = 0xFF,求教各位大神。

硬件和原子哥是一样的
QQ截图20190512214626.png
LED没亮,Ping 也不通  。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2019-5-13 02:23:24 | 显示全部楼层
回复

使用道具 举报

21

主题

211

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1423
金钱
1423
注册时间
2016-8-3
在线时间
576 小时
发表于 2019-5-13 10:28:49 | 显示全部楼层
把DHCP关掉,直接建立IP试试
回复

使用道具 举报

10

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
925
金钱
925
注册时间
2016-3-21
在线时间
111 小时
发表于 2019-5-13 10:43:11 | 显示全部楼层
能不能读到8720的寄存器,如果不能,那可能是底部引脚没焊
回复

使用道具 举报

10

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
925
金钱
925
注册时间
2016-3-21
在线时间
111 小时
发表于 2019-5-13 10:44:54 | 显示全部楼层
应该是底部引脚没焊,8720的25脚为地,没焊好肯定不通
回复

使用道具 举报

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
 楼主| 发表于 2019-5-13 21:18:41 | 显示全部楼层

原子哥,现在自己做的一块板子在测试。
回复

使用道具 举报

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
 楼主| 发表于 2019-5-13 21:19:47 | 显示全部楼层
1965969523 发表于 2019-5-13 10:28
把DHCP关掉,直接建立IP试试

先就是直接关掉的,建立不了,后面把DHCP打开,能运行到While(1)里面
回复

使用道具 举报

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
 楼主| 发表于 2019-5-13 22:32:45 | 显示全部楼层
触电丶 发表于 2019-5-13 10:44
应该是底部引脚没焊,8720的25脚为地,没焊好肯定不通

接了地的哦!还是不行。
回复

使用道具 举报

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
 楼主| 发表于 2019-5-13 22:34:51 | 显示全部楼层
QQ截图20190513223131.png

而且这里面打不了断点。
QQ截图20190513223200.png
网口灯没亮,ping无法访问  ,按了Ctrl + C后,显示发送8 ,接收8.
回复

使用道具 举报

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
 楼主| 发表于 2019-5-13 22:53:26 | 显示全部楼层
修改C/C++编译选项,默认是Leve 0(O0) 即不做优化。可以运行到speed = speed,返回值为0x07,即100M,说明读取寄存器没问题的吧
回复

使用道具 举报

10

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
925
金钱
925
注册时间
2016-3-21
在线时间
111 小时
发表于 2019-5-14 08:29:25 | 显示全部楼层
网口用的什么型号呢?8720和网口中间需要有隔离变压器,要么板载的,要么网口自带的,比如HR91115A
回复

使用道具 举报

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
 楼主| 发表于 2019-5-14 08:37:22 | 显示全部楼层
触电丶 发表于 2019-5-14 08:29
网口用的什么型号呢?8720和网口中间需要有隔离变压器,要么板载的,要么网口自带的,比如HR91115A

是的,用的HR91115A,和原子哥的原理图一样的型号。
回复

使用道具 举报

10

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
925
金钱
925
注册时间
2016-3-21
在线时间
111 小时
发表于 2019-5-14 09:02:58 | 显示全部楼层
原理图发出来看一下呢
回复

使用道具 举报

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
 楼主| 发表于 2019-5-14 11:31:24 | 显示全部楼层
1.png 2.png 3.png 4.png
回复

使用道具 举报

54

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
420
金钱
420
注册时间
2014-5-13
在线时间
66 小时
 楼主| 发表于 2019-5-14 20:33:00 | 显示全部楼层
触电丶 发表于 2019-5-14 09:02
原理图发出来看一下呢

有没有什么问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-15 02:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表