日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stm32+lwip(四):网页服务器测试

發布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stm32+lwip(四):网页服务器测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ST官方有lwip的例程,下載地址如下:

https://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-standard-peripheral-library-expansion/stsw-stm32070.html

本文例子參考ST官方給出的例程。

一、準備

ST例程文檔關于lwip的介紹如下:

?

由此可以看到LWIP有三種API,在本文中,使用Raw API。

HTTP協議是建立在TCP協議之上的一種應用,本文用到的TCP Raw API如下:

二、移植官方例程

官方例程在stsw-stm32070\STM32F4x7_ETH_LwIP_V1.1.1\Project\Standalone\httpserver目錄下,拷貝以下文件到我們工程:

?

fs.c/h是文件的操作

fs.data.c/h存放了網頁的數據

httpd.c/h是網頁服務器

httpd_cgi_ssi.c?是cgi和ssi的處理

將httpd_cgi_ssi.c中關于硬件操作的代碼刪掉,或者找到宏LWIP_HTTPD_SSI和宏LWIP_HTTPD_CGI將SSI和CGI功能禁掉,然后在主程序中增加httpd_init()。

上電運行后可以看到ST官方例子的網頁:

?

三、打印網頁接收數據

在httpd.c中的http_recv函數中增加以下黃色部分代碼:

?

然后當在瀏覽器打開192.168.2.8時,串口輸出以下數據:

get msg from 192:168:2:194 port:55329: GET / HTTP/1.1 Host: 192.168.2.8 Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9get msg from 192:168:2:194 port:55330: GET /STM32F4x7_files/ST.gif HTTP/1.1 Host: 192.168.2.8 Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 Accept: image/webp,image/apng,image/*,*/*;q=0.8 Referer: http://192.168.2.8/ Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9get msg from 192:168:2:194 port:55331: GET /STM32F4x7_files/stm32.jpg HTTP/1.1 Host: 192.168.2.8 Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 Accept: image/webp,image/apng,image/*,*/*;q=0.8 Referer: http://192.168.2.8/ Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9get msg from 192:168:2:194 port:55332: GET /inchtml-pages-stm32_connectivity_files/pixel.gif HTTP/1.1 Host: 192.168.2.8 Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 Accept: image/webp,image/apng,image/*,*/*;q=0.8 Referer: http://192.168.2.8/ Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9get msg from 192:168:2:194 port:55334: GET /favicon.ico HTTP/1.1 Host: 192.168.2.8 Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 Accept: image/webp,image/apng,image/*,*/*;q=0.8 Referer: http://192.168.2.8/ Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9

由此可以看出,打開了網頁服務器地址,會給網頁服務器發送GET / HTTP/1.1命令,網頁服務器會根據這個命令找到index.html,然后給瀏覽器返回網頁數據。由于網頁數據中又包含了一些照片資源,因此瀏覽器再給網頁服務器發送

GET /STM32F4x7_files/ST.gif HTTP/1.1 GET /STM32F4x7_files/stm32.jpg HTTP/1.1 GET /inchtml-pages-stm32_connectivity_files/pixel.gif HTTP/1.1 GET /favicon.ico HTTP/1.1

以獲取照片資源。

四、最后

本文測試了網頁服務器功能,能正常打開預置網頁,后續開發嵌入式網頁可以根據ST例程進行修改,同時加上了SSI和CGI可以做到一些簡單的交互。

?

github:https://github.com/54zorb/stm32-lwip

總結

以上是生活随笔為你收集整理的stm32+lwip(四):网页服务器测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。