最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

STM32 - 無線模塊 88W8801 基礎(chǔ)主機驅(qū)動

2023-08-09 07:31 作者:山路旁的輝翎  | 我要投稿

Marvell 88W8801 是一款支持 2.4 GHz、IEEE 802.11n 協(xié)議的無線模塊,其內(nèi)部僅集成了 CPU、SRAM、MAC、Baseband 等必要組件,相比于其他高度集成的無線模塊而言透明度更高,靈活性更好。該模塊支持 USB 2.0 和 SDIO 2.0 接口,簡單應(yīng)用場景下速率表現(xiàn)還不錯;在 STM32 等單片機上工作時,通??紤]設(shè)計?SDIO 驅(qū)動。

為什么不選擇更常見的 nRF24L01、ESP8266 或者?ESP32 等無線模塊呢?好問題,這里分開來說。nRF24L01 在傳輸大量數(shù)據(jù)時速率實在是個問題,ESP8266 的?NonOS SDK?不再更新,ESP32 雖然有?SDIO 驅(qū)動,但是沒找到無操作系統(tǒng)的方案,這部分的官方文檔也少得可憐。

除了這些因素,集成度太高和獨立開發(fā)環(huán)境(點名表揚 ESP-IDF)兩大問題才是重中之重。集成度太高隱藏了過多細(xì)節(jié),調(diào)整也麻煩;獨立開發(fā)環(huán)境本身就讓人頭痛,感覺......不如 Qt(

開始之前,請務(wù)必閱讀大佬的文章,里面詳細(xì)介紹了 88W8801 驅(qū)動的實現(xiàn)過程:https://wlink.blog.csdn.net/article/details/103786004

在此基礎(chǔ)上,這里做了一些微不足道的改進(jìn),供各位參考:https://github.com/glifeather/marvell_wlan_host_driver

閱讀下方內(nèi)容時,建議同時參考上述鏈接(Github?上的?README?偏向使用方法,這里重在簡述代碼邏輯)。

首先選擇單片機型號。STM32F1 系列雖然有 SDIO 接口,但系統(tǒng)主頻較低,內(nèi)存也較小,因此選擇的是 STM32F407。調(diào)試信息輸出到 SPI2 上的 TFT-LCD,屏幕大小為 128*160(在頭文件中定義),驅(qū)動芯片為 ST7735S。通過修改 debug.c,也可輸出到串口或其他設(shè)備上。

為什么從 SPI2 開始呢?因為開發(fā)板的板載?Flash 連接到了 SPI1 上(ˉ▽ˉ;)。由于無線模塊內(nèi)置 ROM 空間較小,上電時要求主機將固件發(fā)送到?SRAM 中運行。如果直接將固件保存到 const 變量,將極大延長燒錄時間,不妨第一次就將固件寫入 Flash,之后每次讀取 16-1024 字節(jié)(由模塊給定),通過?SDIO 接口發(fā)送出去。在 AC6 編譯器下,這將導(dǎo)致無法切換 Ready?狀態(tài)或校驗 CRC 出錯,將優(yōu)化等級改為?-Oz 即可,原因不明。

88w8801_flash.c 負(fù)責(zé)操作?W25Q16DV

如果看到這里——別急,請先閱讀一下代碼吧(寫了一晚上,讓咱先補個覺......

STM32 - 無線模塊 88W8801 基礎(chǔ)主機驅(qū)動的評論 (共 條)

分享到微博請遵守國家法律
来安县| 宁海县| 龙里县| 乌兰察布市| 乡城县| 潍坊市| 丹棱县| 元朗区| 台南县| 巴楚县| 丘北县| 温宿县| 苍溪县| 神木县| 饶平县| 霍城县| 田林县| 鲁甸县| 静乐县| 边坝县| 榆林市| 永昌县| 岗巴县| 昌宁县| 花莲县| 乌海市| 九寨沟县| 皋兰县| 喜德县| 南江县| 益阳市| 博爱县| 阜阳市| 济南市| 抚远县| 南和县| 吉水县| 河东区| 淮安市| 九龙城区| 青铜峡市|