我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 2265|回复: 2

[技术文章] 这是STM32F4系列lan 开发的主文件

[复制链接]

该用户从未签到

811

主题

399

回帖

499

积分

二级逆天

积分
499

社区居民社区明星忠实会员宣传大使奖终身成就奖特殊贡献奖

QQ
发表于 2014-11-21 12:31:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"
#include "lwip_comm.h"
#include "LAN8720.h"
#include "usmart.h"
#include "timer.h"
#include "lcd.h"
#include "adc.h"
#include "rtc.h"
#include "sram.h"
#include "malloc.h"
#include "beep.h"
#include "lwip_comm.h"
#include "tcp_client_demo.h"
#include "tcp_server_demo.h"
#include "udp_demo.h"
#include "httpd.h"

  
//加载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,"Explorer STM32F4");
        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,"2014/8/15");     
    }
    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;
    Stm32_Clock_Init(336,8,2,7);//设置时钟,168Mhz
    delay_init(168);            //延时初始化  
    uart_init(84,115200);        //初始化串口波特率为115200
    usmart_dev.init(84);        //初始化USMART
    LED_Init();                  //LED初始化
    KEY_Init();                  //按键初始化
    LCD_Init();                 //LCD初始化
    BEEP_Init();                //蜂鸣器初始化
    RTC_Init();                  //RTC初始化
    Adc_Init();                  //ADC初始化
    TIM3_Int_Init(100-1,8400-1);//10khz的频率,计数100为10ms
    my_mem_init(SRAMIN);        //初始化内部内存池
    my_mem_init(SRAMCCM);        //初始化CCM内存池
    POINT_COLOR=RED;             //红色字体
    lwip_test_ui(1);            //加载前半部分UI
    //先初始化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,&quotlease choose a mode!");
        if(t==200)
        {
            t=0;
            LCD_Fill(30,230,230,230+16,WHITE);//清除显示
            LED0=!LED0;
        }
    }
}
回复

使用道具 举报

该用户从未签到

24

主题

2224

回帖

3257

积分

二级逆天

积分
3257

社区居民忠实会员社区劳模最爱沙发优秀斑竹奖终身成就奖

QQ
发表于 2014-11-21 13:04:26 | 显示全部楼层
广告位出租,价格可以商量。
回复

使用道具 举报

该用户从未签到

30

主题

1427

回帖

1854

积分

二级逆天

积分
1854

终身成就奖特殊贡献奖原创先锋奖

发表于 2023-3-7 08:30:18 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

每日签到,有金币领取。


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表