單片機源程序如下:
- /*******************************************************************************
- * 實 驗 名 : 以太網應用--LWIP移植(無操作系統)
- * 實驗說明 :
- * 連接方式 :
- * 注 意 : 默認使用靜態IP模式,使用一根網線將開發板和電腦網絡接口連接,
- 在電腦IP地址設置處手動修改為串口打印輸出的遠端IP和端口,然后
- 打開“5--開發工具\4. 常用輔助開發軟件\網絡調試助手”
- 和“串口調試助手”,將相應選擇設置為實驗截圖所示。
- 也可通過電腦"運行+cmd"ping下,檢測網絡鏈路是否正常。
- 本實驗開發板網絡端為客戶端,電腦為服務器。
- 如果需要使用DHCP服務器模式,可以在netconf.h文件中釋放USE_DHCP宏定義,此時
- 要求電腦和開發板網口都是連接在同一路由器下,電腦端無需其他操作,最后在
- 網絡調試助手和串口上設置下即可。
- *******************************************************************************/
- #include "system.h"
- #include "SysTick.h"
- #include "led.h"
- #include "usart.h"
- #include "time.h"
- #include "key.h"
- #include "stm32f4x7_phy.h"
- #include "lwip/tcp.h"
- #include "netconf.h"
- #include "tcp_echoclient.h"
- extern __IO uint8_t EthLinkStatus;
- /*******************************************************************************
- * 函 數 名 : main
- * 函數功能 : 主函數
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- int main()
- {
- u8 key;
- u8 flag=0;
-
- SysTick_Init(168);
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中斷優先級分組 分2組
- LED_Init();
- USART3_Init(9600);
- KEY_Init();
- TIM4_Init(999,839); //10ms定時器
-
- printf("以太網應用--LWIP移植(無操作系統)\n");
-
- /* Configure ethernet (GPIOs, clocks, MAC, DMA) */
- ETH_BSP_Config();
- printf("\r\nPHY初始化結束\n");
-
- /* Initilaize the LwIP stack */
- LwIP_Init();
- printf("\r\nLwIP初始化結束\n");
-
- printf("\r\nK_UP : 啟動TCP連接\n");
- printf("\r\nK_DOWN: 斷開TCP連接\n");
-
- /* IP地址和端口可在netconf.h文件修改,或者使用DHCP服務自動獲取IP
- (需要路由器支持)*/
- printf("\r\n本地IP和端口: %d.%d.%d.%d\n",IP_ADDR0,IP_ADDR1,IP_ADDR2,IP_ADDR3);
- printf("\r\n遠端IP和端口: %d.%d.%d.%d:%d\n",DEST_IP_ADDR0, DEST_IP_ADDR1,DEST_IP_ADDR2, DEST_IP_ADDR3,DEST_PORT);
-
- while(1)
- {
- key=KEY_Scan(0);
- if(key==KEY_UP && (flag==0))
- {
- led1=0;
- if (EthLinkStatus == 0)
- {
- printf("connect to tcp server\n");
- /*connect to tcp server */
- tcp_echoclient_connect();
- flag=1;
- }
- }
- if(key==KEY_DOWN&& flag)
- {
- led1=1;
- tcp_echoclient_disconnect();
- flag=0;
- }
-
- /* check if any packet received */
- if (ETH_CheckFrameReceived())
- {
- /* process received ethernet packet */
- LwIP_Pkt_Handle();
- }
- /* handle periodic timers for LwIP */
- LwIP_Periodic_Handle(LocalTime);
- }
- }
復制代碼
所有資料51hei提供下載:
以太網應用--LWIP移植(無操作系統).7z
(945.67 KB, 下載次數: 171)
2019-5-18 03:08 上傳
點擊文件名下載附件
LWIP以太網開發歷程 下載積分: 黑幣 -5
|