OpenEdv-开源电子网

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

如何把动态ip地址都设为固定的IP地址

[复制链接]

3

主题

13

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2017-8-23
在线时间
4 小时
发表于 2017-8-23 15:24:21 | 显示全部楼层 |阅读模式
1金钱
[img]file:///D:\Documents\Tencent Files\1847853751\Image\C2C\8Y6MKWKG08ZJLJX`XT[XL~6.png[/img][img]file:///D:\Documents\Tencent Files\1847853751\Image\C2C\8Y6MKWKG08ZJLJX`XT[XL~6.png[/img]

QQ图片20170823152139.png

最佳答案

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

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10568
金钱
10568
注册时间
2017-2-18
在线时间
1913 小时
发表于 2017-8-23 15:24:22 | 显示全部楼层
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2017-8-23
在线时间
4 小时
 楼主| 发表于 2017-8-23 15:32:14 | 显示全部楼层
下面这是主程序,哪位大神告诉我在哪个地方修改


#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"
#include "lcd.h"
#include "sdram.h"
#include "lan8720.h"
#include "timer.h"
#include "pcf8574.h"
#include "adc.h"
#include "rtc.h"
#include "malloc.h"
#include "lwip/netif.h"
#include "lwip_comm.h"
#include "lwipopts.h"
#include "tcp_client_demo.h"
#include "tcp_server_demo.h"
#include "udp_demo.h"
#include "httpd.h"


u8 *tbuf1;
volatile u16 uu;
//加载UI
//mode:
//bit0:0,不加载;1,加载前半部分UI
//bit1:0,不加载;1,加载后半部分UI
void lwip_test_ui(u8 mode)
{
        u8 speed;
        u8 buf[30];
        POINT_COLOR=RED;
        if(mode&1<<0)
        {
                LCD_Fill(30,30,lcddev.width,110,WHITE);        //清除显示
                LCD_ShowString(30,30,200,16,16,"Apollo STM32F4/F7");
                LCD_ShowString(30,50,200,16,16,"Ethernet lwIP Test");
                LCD_ShowString(30,70,200,16,16,"ATOM@ALIENTEK");
                LCD_ShowString(30,90,200,16,16,"2016/2/29");        
        }
        if(mode&1<<1)
        {
                ////////LCD_Fill(30,110,lcddev.width,lcddev.height,WHITE);        //清除显示
                LCD_ShowString(30,110,200,16,16,"lwIP Init Successed");
               
                if(lwipdev.dhcpstatus==2)
                        sprintf((char*)buf,"DHCP IP:%d.%d.%d.%d",lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]);//打印动态IP地址
                else
                        sprintf((char*)buf,"Static IP:%d.%d.%d.%d",lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]);//打印静态IP地址
                  
                  
                  LCD_ShowString(30,130,210,16,16,buf);
                  speed=LAN8720_Get_Speed();//¥得到网速,不需要
               
                if(speed&1<<1)
                        LCD_ShowString(30,150,200,16,16,"Ethernet Speed:100M");
                else
                  LCD_ShowString(30,150,200,16,16,"Ethernet Speed:10M");
               
                  LCD_ShowString(30,170,200,16,16,"KEY0:TCP Server Test");
                  LCD_ShowString(30,190,200,16,16,"KEY1:TCP Client Test");
                  LCD_ShowString(30,210,200,16,16,"KEY2:UDP Test");
        }
}

int main(void)
{   
    u8 t;
          u8 key;

    HAL_Init();                     //初始化HAL库   
    Stm32_Clock_Init(360,25,2,8);   //设置时钟,180Mhz
    delay_init(180);                //初始化延时函数
    uart_init(115200);              //初始化USART
    LED_Init();                     //初始化LED
    KEY_Init();                     //初始化按键
    SDRAM_Init();                   //初始化SDRAM
    LCD_Init();                     //初始化LCD
    PCF8574_Init();                 //初始化PCF8574
    MY_ADC_Init();                  //初始化ADC
    RTC_Init();                     //初始化RTC
    TIM3_Init(1000-1,900-1);        //定时器3初始化,定时器时钟为90M,分频系数为900-1,
                                    //所以定时器3的频率为90M/900=100K,自动重装载为1000-1,那么定时器周期就是10ms
    my_mem_init(SRAMIN);                        //初始化内部内存池
////////        my_mem_init(SRAMEX);                  //初始化外部内存池
          my_mem_init(SRAMCCM);                        //初始化CCM内存池
           POINT_COLOR=RED;         
          LED0=0;
          lwip_test_ui(1);                            //加载前半部分UI
    LCD_ShowString(30,110,200,16,16,"lwIP Initing...");
        while(lwip_comm_init())         //lwip初始化
        {
                LCD_ShowString(30,110,200,20,16,"LWIP Init Falied! ");
                delay_ms(500);
                LCD_ShowString(30,110,200,16,16,"Retrying...       ");
    delay_ms(500);
        }
       
        LCD_ShowString(30,110,200,20,16,"LWIP Init Success!");
        LCD_ShowString(30,130,200,16,16,"DHCP IP configing...");  //等待DHCP获取
#if LWIP_DHCP   //使用DHCP
        while((lwipdev.dhcpstatus!=2)&&(lwipdev.dhcpstatus!=0XFF))//等待DHCP获取成功/超时溢出
        {   
                lwip_periodic_handle();        //LWIP内核需要定时处理的函数
        }
#endif
  lwip_test_ui(2);                //加载后半部分UI
        httpd_init();                //HTTP初始化(默认开启websever)

        init_send(); //by HZHH
        tbuf1=mymalloc(SRAMIN,200);        //申请内存 //BY HZHH

        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

                            //显示内存0的使用率 BY HZHH
                                sprintf((char*)tbuf1,"PerUse:%d",my_mem_perused(SRAMIN));//
                                LCD_ShowString(30,270,210,16,16,tbuf1);  
                                uu=234;
                                sprintf((char*)tbuf1,"PerUseXX:%d",uu);//
                                LCD_ShowString(30,290,210,16,16,tbuf1);  

                                sprintf((char*)tbuf1,"Remote Port:%d",TCP_CLIENT_PORT);//客户端端口号
                                LCD_ShowString(30,330,210,16,16,tbuf1);

                       
                       
                       
                  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;
                }
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2017-8-23
在线时间
4 小时
 楼主| 发表于 2017-8-25 09:12:40 | 显示全部楼层
嗯呢,谢谢你啊,我来试试
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2017-8-23
在线时间
4 小时
 楼主| 发表于 2017-8-25 12:14:35 | 显示全部楼层

大神,厉害了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-18 05:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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