2026年8月23日 星期日

[水井村USR] HUB 8735 Ultra第一次燒錄實測:從COM埠消失、LED巨集衝突到成功進入Flash Mode

HUB 8735 Ultra第一次燒錄實測:從COM埠消失、LED巨集衝突到成功進入Flash Mode

HUB 8735 Ultra採用瑞昱RTL8735系列晶片,整合Wi-Fi、BLE、攝影機、音訊與NPU人工智慧運算能力,是一款很適合影像辨識、AIoT與智慧生活應用的國產IC開發板。本篇記錄實際使用Arduino IDE測試板載LED的完整過程,包含COM埠辨識、程式編譯錯誤、Flash Mode操作,以及燒錄完成後如何正確執行程式。

前導閱讀:
如果尚未安裝HUB 8735 Ultra開發板套件,建議先閱讀: 《國產Wi-Fi晶片8735 Ultra初體驗》 。 本文將接續該篇文章,聚焦在實際連線、除錯與燒錄測試。

一、測試目標

這次測試希望依序確認以下功能:

  • Windows能否辨識HUB 8735 Ultra的USB序列埠。
  • Arduino IDE能否找到正確的COM埠。
  • 開發板能否正確進入Flash Mode。
  • 程式能否成功編譯及燒錄。
  • 板載LED能否每秒閃爍一次。

LED閃爍看似簡單,卻是檢查開發環境、USB連線、開發板套件、燒錄工具與GPIO輸出的最佳第一步。

二、準備項目

項目 用途
HUB 8735 Ultra 本次測試開發板
可傳輸資料的USB Type-C線 供電、燒錄與序列通訊
Windows電腦 執行Arduino IDE及查看裝置管理員
Arduino IDE 編譯及上傳程式
ideasHatch開發板套件 提供HUB 8735 Ultra板型、腳位及燒錄工具
特別注意:HUB 8735 Ultra具有兩個USB Type-C埠。進行Arduino程式燒錄時,應使用連接CH340燒錄晶片的USB/Debug端,而不是OTG功能端。

三、確認Windows是否辨識開發板

將HUB 8735 Ultra接到電腦後,開啟Windows「裝置管理員」,展開:

連接埠(COM和LPT)

本次測試顯示:

USB-SERIAL CH340 (COM12)

這代表:

  • USB線具有資料傳輸能力。
  • 電腦已辨識板上的CH340序列晶片。
  • 目前使用的序列埠為COM12。

COM編號會依電腦與USB插孔而不同,不一定都是COM12。請以自己的裝置管理員顯示結果為準。

四、為什麼打開Arduino IDE後,COM埠好像不見了?

測試初期,在尚未打開Arduino IDE時,可以在裝置管理員看到COM12;打開Arduino IDE後,卻出現COM埠不穩定或找不到的現象。

遇到這種情況,可先依序檢查:

  1. 先開啟Arduino IDE,等它完全啟動後再接上開發板。
  2. 使用可傳輸資料的Type-C線。
  3. 直接接到電腦USB埠,不經過USB Hub。
  4. 確認沒有開啟其他序列監控或燒錄軟體。
  5. 確認選擇的是CH340所對應的COM埠。
  6. 依正確按鍵順序讓開發板進入Flash Mode。
本次實測最後確認:CH340、COM12及USB線均可正常工作,關鍵是HUB 8735 Ultra需要以功能鍵和RESET鍵手動進入Flash Mode。

五、第一個程式錯誤:LED_B名稱衝突

最初嘗試使用以下寫法:

const int LED_B = 26;

編譯時出現:

note: in expansion of macro 'LED_B'
const int LED_B = 26;
          ^~~~~
exit status 1

原因是HUB 8735 Ultra開發板套件已經將 LED_B 定義成巨集。當我們再次宣告相同名稱時,就會產生命名衝突。

因此,不需要重新定義LED腳位,可以直接使用開發板套件提供的:

  • LED_BUILTIN:板載LED。
  • LED_B:板載藍色LED定義。
  • LED_G:板載綠色LED定義。
在Arduino開發板套件中,腳位名稱常以巨集預先定義。若自行宣告相同名稱,就可能出現「in expansion of macro」錯誤。最安全的方法是直接使用套件提供的名稱,或改用不重複的變數名稱,例如 BLUE_LED_PIN

六、成功使用的LED閃爍程式

最後使用Arduino標準的板載LED名稱,程式如下:

void setup() {
  // 將板載LED腳位設定為輸出
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  // LED切換為高電位
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);

  // LED切換為低電位
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
}

這段程式每隔一秒改變一次LED輸出狀態,用來驗證GPIO與程式執行是否正常。

七、HUB 8735 Ultra正確燒錄方法

HUB 8735 Ultra不像部分Arduino開發板會自動進入燒錄模式。本次實測必須先利用「功能鍵+RESET鍵」手動進入Flash Mode。

按住功能鍵 → 按下並放開RESET → 放開功能鍵 → 開始上傳 → 完成後再按RESET
步驟1:使用USB Type-C線將HUB 8735 Ultra的燒錄/Debug端接到電腦。
步驟2:在Arduino IDE選擇正確的HUB 8735 Ultra開發板及COM埠。
步驟3:按住左側「功能鍵」不放。
步驟4:按一下右側「RESET鍵」,然後放開RESET鍵。
步驟5:最後才放開「功能鍵」。此時開發板已進入Flash Mode。
步驟6:在Arduino IDE按下「上傳」。
步驟7:等待Arduino IDE顯示燒錄成功訊息。
步驟8:燒錄完成後,再按一下RESET鍵,讓新程式開始執行。

八、如何判斷燒錄成功?

本次Arduino IDE顯示的關鍵訊息如下:

Enter Flash Mode!
Start Upload Flash
Uploading................upload success
End Upload Flash

其中最重要的是:

upload success

這表示韌體已成功寫入HUB 8735 Ultra。

看到「upload success」後,程式不一定會立即執行。必須再按一下RESET鍵,開發板才會退出燒錄狀態並啟動剛才上傳的新程式。

九、這次除錯過程學到什麼?

遇到的現象 原因或處理方式
裝置管理員看到COM12 表示Windows已辨識CH340燒錄介面
Arduino IDE內COM埠不穩定 確認USB線、燒錄端及Flash Mode操作
宣告LED_B時編譯失敗 LED_B已由開發板套件定義,產生巨集名稱衝突
程式無法直接上傳 燒錄前需以功能鍵和RESET鍵進入Flash Mode
顯示upload success但LED沒閃 燒錄完成後需再按一次RESET鍵
LED成功閃爍 代表USB、驅動、開發板套件、Flash及GPIO均正常

十、後續開發前的快速檢查表

  • 使用具備資料傳輸功能的USB Type-C線。
  • 接到HUB 8735 Ultra的燒錄/Debug端。
  • 在裝置管理員確認CH340及COM編號。
  • 在Arduino IDE選擇正確板型和COM埠。
  • 避免自行重新宣告LED_B、LED_G等既有巨集。
  • 燒錄前先手動進入Flash Mode。
  • 確認出現「upload success」。
  • 燒錄完成後按RESET執行新程式。
本次測試結果:
HUB 8735 Ultra已成功透過COM12完成程式燒錄,板載LED可依程式每秒改變一次狀態。這也確認開發環境、CH340序列通訊、Flash燒錄工具及GPIO輸出功能均正常。

十一、從LED閃爍走向AIoT應用

完成LED測試後,下一階段就可以逐步加入Wi-Fi、攝影機、影像串流、物件辨識、麥克風、音訊播放及MQTT通訊。

建議依照以下順序進行:

  1. 板載LED與按鈕測試。
  2. 序列埠輸出測試。
  3. Wi-Fi連線測試。
  4. 攝影機影像串流。
  5. 板端物件辨識。
  6. MQTT或HTTP資料傳輸。
  7. 與Raspberry Pi、Django或雲端AI平台整合。
  8. 發展具備影像、語音與Agent控制能力的AI機器人。

結語

第一次測試開發板時,真正重要的不是讓一顆LED亮起來,而是建立一套可重複的除錯方法:先確認電腦是否辨識硬體,再確認開發板與COM埠,接著排除程式命名問題,最後掌握正確的Flash Mode與RESET操作。

HUB 8735 Ultra整合了國產IC、Wi-Fi、BLE、攝影機、音訊及邊緣AI能力。當最基本的燒錄流程穩定後,就能進一步發展智慧辨識、AIoT、地方導覽、樹藝AI與可以談天的互動機器人。

延伸閱讀: 國產Wi-Fi晶片8735 Ultra初體驗

沒有留言:

張貼留言