久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3928|回復: 1
收起左側

STM32 LWIP無操作系統移植源碼

[復制鏈接]
ID:426178 發表于 2018-11-14 09:35 | 顯示全部樓層 |閱讀模式
文件見下

單片機源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "key.h"
  6. #include "lcd.h"
  7. #include "sdram.h"
  8. #include "lan8720.h"
  9. #include "timer.h"
  10. #include "pcf8574.h"
  11. #include "mpu.h"
  12. #include "usmart.h"
  13. #include "malloc.h"
  14. #include "malloc.h"
  15. #include "lwip/netif.h"
  16. #include "lwip_comm.h"
  17. #include "lwipopts.h"

  18. //在LCD上顯示地址信息
  19. //mode:2 顯示DHCP獲取到的地址
  20. //          其他 顯示靜態地址
  21. void show_address(u8 mode)
  22. {
  23.         u8 buf[30];
  24.         if(mode==2)
  25.         {
  26.                 sprintf((char*)buf,"MAC    :%d.%d.%d.%d.%d.%d",lwipdev.mac[0],lwipdev.mac[1],lwipdev.mac[2],lwipdev.mac[3],lwipdev.mac[4],lwipdev.mac[5]);//打印MAC地址
  27.                 LCD_ShowString(30,130,210,16,16,buf);
  28.                 sprintf((char*)buf,"DHCP IP:%d.%d.%d.%d",lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]);                                                //打印動態IP地址
  29.                 LCD_ShowString(30,150,210,16,16,buf);
  30.                 sprintf((char*)buf,"DHCP GW:%d.%d.%d.%d",lwipdev.gateway[0],lwipdev.gateway[1],lwipdev.gateway[2],lwipdev.gateway[3]);        //打印網關地址
  31.                 LCD_ShowString(30,170,210,16,16,buf);
  32.                 sprintf((char*)buf,"DHCP IP:%d.%d.%d.%d",lwipdev.netmask[0],lwipdev.netmask[1],lwipdev.netmask[2],lwipdev.netmask[3]);        //打印子網掩碼地址
  33.                 LCD_ShowString(30,190,210,16,16,buf);
  34.         }
  35.         else
  36.         {
  37.                 sprintf((char*)buf,"MAC      :%d.%d.%d.%d.%d.%d",lwipdev.mac[0],lwipdev.mac[1],lwipdev.mac[2],lwipdev.mac[3],lwipdev.mac[4],lwipdev.mac[5]);//打印MAC地址
  38.                 LCD_ShowString(30,130,210,16,16,buf);
  39.                 sprintf((char*)buf,"Static IP:%d.%d.%d.%d",lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]);                                                //打印動態IP地址
  40.                 LCD_ShowString(30,150,210,16,16,buf);
  41.                 sprintf((char*)buf,"Static GW:%d.%d.%d.%d",lwipdev.gateway[0],lwipdev.gateway[1],lwipdev.gateway[2],lwipdev.gateway[3]);        //打印網關地址
  42.                 LCD_ShowString(30,170,210,16,16,buf);
  43.                 sprintf((char*)buf,"Static IP:%d.%d.%d.%d",lwipdev.netmask[0],lwipdev.netmask[1],lwipdev.netmask[2],lwipdev.netmask[3]);        //打印子網掩碼地址
  44.                 LCD_ShowString(30,190,210,16,16,buf);
  45.         }       
  46. }

  47. int main(void)
  48. {
  49.     u16 i=0;
  50.    
  51.     Write_Through();                //開啟強制透寫!
  52.     MPU_Memory_Protection();        //保護相關存儲區域
  53.     Cache_Enable();                 //打開L1-Cache
  54.    
  55.     HAL_Init();                                        //初始化HAL庫
  56.     Stm32_Clock_Init(432,25,2,9);   //設置時鐘,216Mhz
  57.     delay_init(216);                //延時初始化
  58.         uart_init(115200);                        //串口初始化
  59.         usmart_dev.init(108);                     //初始化USMART
  60.     LED_Init();                     //初始化LED
  61.     KEY_Init();                     //初始化按鍵
  62.     SDRAM_Init();                   //初始化SDRAM
  63.     LCD_Init();                     //初始化LCD
  64.     PCF8574_Init();                 //初始化PCF8574
  65.     my_mem_init(SRAMIN);                    //初始化內部內存池
  66.         my_mem_init(SRAMEX);                    //初始化外部內存池
  67.         my_mem_init(SRAMDTCM);                    //初始化DTCM內存池
  68.     POINT_COLOR = RED;                
  69.         LCD_ShowString(30,30,200,16,16,"Apollo STM32F4/F7");
  70.         LCD_ShowString(30,50,200,16,16,"Ethernet lwIP est");
  71.         LCD_ShowString(30,70,200,16,16,"ATOM@ALIENTEK");
  72.         LCD_ShowString(30,90,200,16,16,"2016/7/19");
  73.     TIM3_Init(1000-1,1080-1);       //定時器3初始化,定時器時鐘為108M,分頻系數為1080-1,
  74.                                     //所以定時器3的頻率為108M/1080=100K,自動重裝載為1000-1,那么定時器周期就是10ms
  75.         while(lwip_comm_init())         //lwip初始化
  76.         {
  77.                 LCD_ShowString(30,110,200,20,16,"LWIP Init Falied! ");
  78.                 delay_ms(500);
  79.                 LCD_ShowString(30,110,200,16,16,"Retrying...       ");
  80.         delay_ms(500);
  81.         }
  82.         LCD_ShowString(30,110,200,20,16,"LWIP Init Success!");
  83.         LCD_ShowString(30,130,200,16,16,"DHCP IP configing...");  //等待DHCP獲取
  84. #if LWIP_DHCP   //使用DHCP
  85.         while((lwipdev.dhcpstatus!=2)&&(lwipdev.dhcpstatus!=0XFF))//等待DHCP獲取成功/超時溢出
  86.         {  
  87.                 lwip_periodic_handle();        //LWIP內核需要定時處理的函數
  88.         }
  89. #endif
  90.         show_address(lwipdev.dhcpstatus);        //顯示地址信息
  91.         while(1)
  92.         {
  93.                 lwip_periodic_handle();        //LWIP內核需要定時處理的函數
  94.         delay_us(200);
  95.         i++;
  96.         if(i==2000)
  97.         {
  98.             i=0;
  99.             LED0_Toggle;
  100.         }
  101.         }                                                                                 
  102. }
復制代碼

所有資料51hei提供下載:
網絡實驗1 LWIP無操作系統移植.rar (1.77 MB, 下載次數: 39)


回復

使用道具 舉報

ID:396515 發表于 2019-8-25 09:52 | 顯示全部樓層
謝謝分享,希望多發詳細資料
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99婷婷| 香蕉视频久久久 | 国产综合久久久久久鬼色 | 精品日韩在线 | 毛片免费视频 | 国产小u女发育末成年 | 久久久性色精品国产免费观看 | 国产精品美女久久久久aⅴ国产馆 | 日本一区二区三区在线观看 | 91视频免费 | 国产精品久久影院 | 一区欧美 | 国产欧美日韩在线播放 | 欧美在线看片 | 国产精品一区二区三级 | 国产精品精品3d动漫 | 国产精品免费在线 | 成人精品久久久 | 成人精品免费视频 | 欧美成人h版在线观看 | 一区二区日韩 | 日批av| 亚洲精品女人久久久 | 亚洲精品91| 成人一区在线观看 | 日韩爱爱网 | 一区二区三区四区在线 | 一级高清 | 91爱爱·com | 91麻豆精品国产91久久久久久久久 | 日韩欧美精品在线 | 手机av在线| 免费精品久久久久久中文字幕 | 精品久久99 | 91香蕉视频在线观看 | 久久i| www97影院 | 日韩一级| 一级黄色片美国 | 亚洲欧美国产一区二区三区 | 看av网址 |