RTL8722DM Scan Wi-Fi Network 的MAC

各位先進,前輩們好
我目前需要使用RTL8722DM 搜尋周邊Wi-Fi AP的MAC值
我使用Arduino IDE Library範例中的ScanNetwork發現,必須要使用WiFi.begin(ssid, pass) 的Fuction連上AP後才能用WiFi.BSSID(bssid)讀取該AP的MAC值

但小弟我因研究需要在不連上AP時就取得該AP的MAC.
而我目前發現,如果將掃描到AP的SSID一樣用 WiFi.begin(ssid, pass) 執行但密碼錯誤沒有連線上時,在序列埠監控視窗可以看見[RTL8721D[Driver]: start auth to 88:d7:f6:82:7a:44]的資訊.
很驚人的發現這就是沒有連上的AP的MAC.

但問題是小弟我要怎麼才能將這個MAC值讀出來存放在變數裡面呢?
未連上AP時,WiFi.BSSID(bssid)是讀不到東西的…
還請各位先進前輩幫幫小弟.

以下是圖片支援

1 Like

Hi @_N16094409
看樣子你是在用Arduino SDK吧? 截圖中的log其實都不是從Arduino層打印出來的,而是RTL8722DM的Wi-Fi driver打印出的log,因此在Arduino層面上這麽操作不大容易,或許你不怕麻煩的話,可以看一下RTL8722DM的Realtek Standard SDK的Wi-Fi api, 裏面有一些api或許你會感興趣,

Standard SDK的上手教程在這裏,
https://www.amebaiot.com/en/ameba-sdk-getting-started-8722/

1 Like

Hi
謝謝前輩給的資訊!
看樣子我是不是沒辦法透過修改Library將MAC存在Arduino裡的變數?
若是要用前輩給的SDK,我們是否要用RTL8722在IAR跟KEIL的ScanNetwork程式?
(我目前沒有IAR或Keil的ScanNetwork相關程式…)

Hi @_N16094409

不會用到IAR或者Keil,目前開源的Standard SDK最容易的上手方法是使用GCC,你可以通過Cygwin來安裝make,使用GCC release裏面的project來build firmware,方法已經在上一個post裏面提到了,就是這個

1 Like