|
單片機(jī)源程序如下:
- /*******************************************************************************
- * 實(shí) 驗(yàn) 名 : 以太網(wǎng)應(yīng)用--LWIP移植(無操作系統(tǒng))
- * 實(shí)驗(yàn)說明 :
- * 連接方式 :
- * 注 意 : 默認(rèn)使用靜態(tài)IP模式,使用一根網(wǎng)線將開發(fā)板和電腦網(wǎng)絡(luò)接口連接,
- 在電腦IP地址設(shè)置處手動(dòng)修改為串口打印輸出的遠(yuǎn)端IP和端口,然后
- 打開“5--開發(fā)工具\(yùn)4. 常用輔助開發(fā)軟件\網(wǎng)絡(luò)調(diào)試助手”
- 和“串口調(diào)試助手”,將相應(yīng)選擇設(shè)置為實(shí)驗(yàn)截圖所示。
- 也可通過電腦"運(yùn)行+cmd"ping下,檢測網(wǎng)絡(luò)鏈路是否正常。
- 本實(shí)驗(yàn)開發(fā)板網(wǎng)絡(luò)端為客戶端,電腦為服務(wù)器。
- 如果需要使用DHCP服務(wù)器模式,可以在netconf.h文件中釋放USE_DHCP宏定義,此時(shí)
- 要求電腦和開發(fā)板網(wǎng)口都是連接在同一路由器下,電腦端無需其他操作,最后在
- 網(wǎng)絡(luò)調(diào)試助手和串口上設(shè)置下即可。
- *******************************************************************************/
- #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;
- /*******************************************************************************
- * 函 數(shù) 名 : main
- * 函數(shù)功能 : 主函數(shù)
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- int main()
- {
- u8 key;
- u8 flag=0;
-
- SysTick_Init(168);
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中斷優(yōu)先級(jí)分組 分2組
- LED_Init();
- USART3_Init(9600);
- KEY_Init();
- TIM4_Init(999,839); //10ms定時(shí)器
-
- printf("以太網(wǎng)應(yīng)用--LWIP移植(無操作系統(tǒng))\n");
-
- /* Configure ethernet (GPIOs, clocks, MAC, DMA) */
- ETH_BSP_Config();
- printf("\r\nPHY初始化結(jié)束\n");
-
- /* Initilaize the LwIP stack */
- LwIP_Init();
- printf("\r\nLwIP初始化結(jié)束\n");
-
- printf("\r\nK_UP : 啟動(dòng)TCP連接\n");
- printf("\r\nK_DOWN: 斷開TCP連接\n");
-
- /* IP地址和端口可在netconf.h文件修改,或者使用DHCP服務(wù)自動(dòng)獲取IP
- (需要路由器支持)*/
- printf("\r\n本地IP和端口: %d.%d.%d.%d\n",IP_ADDR0,IP_ADDR1,IP_ADDR2,IP_ADDR3);
- printf("\r\n遠(yuǎ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);
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
以太網(wǎng)應(yīng)用--LWIP移植(無操作系統(tǒng)).7z
(945.67 KB, 下載次數(shù): 171)
2019-5-18 03:08 上傳
點(diǎn)擊文件名下載附件
LWIP以太網(wǎng)開發(fā)歷程
|
|