STM32-標誌

STM32F103C8T6最小系統開發板

STM32F103C8T6-最小系統-開發板-產品

產品資訊

STM32F103C8T6 ARM STM32最小系統開發板模組是一款基於STM32F103C8T6微控制器的開發板。 它設計為使用 Arduino IDE 進行編程,並與各種 Arduino 克隆、變體以及第三方板(例如 ESP32 和 ESP8266)相容。

該板也稱為 Blue Pill Board,其運行頻率約為 Arduino UNO 的 4.5 倍。 它可用於各種項目,並可連接 TFT 顯示器等周邊設備。

使用此板建置專案所需的組件包括 STM32 板、FTDI 編程器、彩色 TFT 顯示器、按鈕、小型麵包板、電線、行動電源(獨立模式可選)和 USB 轉串列轉換器。

概要

若要將 STM32F1 板連接到基於 ST1.8 的 7735 彩色 TFT 顯示器和按鈕,請按照提供的原理圖中所述的引腳對引腳連接進行操作。

為 STM32 設定 Arduino IDE

  1. 打開 Arduino IDE。
  2. 前往工具 -> 板 -> 板管理器。
  3. 在有搜尋列的對話方塊中,搜尋「STM32F1」並安裝對應的軟體包。
  4. 等待安裝過程完成。
  5. 安裝後,STM32 板現在應該可以在 Arduino IDE 板列表下進行選擇。

使用 Arduino IDE 對 STM32 板進行編程

自推出以來,Arduino IDE 就表現出了支持各種平台的願望,從 Arduino 克隆版和不同製造商的變體到 ESP32 和 ESp8266 等第三方板。 隨著越來越多的人熟悉 IDE,他們開始支援更多不基於 ATMEL 晶片的板,在今天的教程中,我們將介紹其中一款此類板。 我們將研究如何使用 Arduino IDE 對基於 STM32 的 STM32F103C8T6 開發板進行程式設計。

STM32F103C8T6-Minimum-System-Development-Board-fig-1

本教程使用的 STM32 板正是基於 STM32F103C8T6 晶片的 STM32F1 開發板,通常被稱為“藍色藥丸”,與其 PCB 的藍色一致。 Blue Pill 採用強大的 32 位元 STM32F103C8T6 ARM 處理器,主頻為 72MHz。 該板在 3.3v 邏輯電平下運行,但其 GPIO 引腳經過測試可耐受 5v 電壓。 雖然它不像 ESP32 和 Arduino 變體那樣配備 WiFi 或藍牙,但它提供 20KB RAM 和 64KB 閃存,足以滿足大型專案的需求。 它還擁有 37 個 GPIO 引腳,其中 10 個可用於類比感測器,因為它們支援 ADC,其他引腳則支援 SPI、I2C、CAN、UART 和 DMA。 對於售價 3 美元左右的主機板,您會同意我的觀點,這些規格令人印象深刻。 下圖顯示了這些規範與 Arduino Uno 規範的總結版本。

STM32F103C8T6-Minimum-System-Development-Board-fig-2

根據上述規格,Blue Pill 的運行頻率大約是 Arduino UNO 的 4.5 倍,在今天的教程中,作為前amp在有關如何使用 STM32F1 板的檔案中,我們將其連接到 1.44 吋 TFT 顯示器並對其進行編程以計算「Pi」常數。 我們將記錄開發板取得該值所需的時間,並將其與 Arduino Uno 執行相同任務所需的時間進行比較。

所需組件

建置該專案需要以下組件;

  • STM32板
  • FTDI程式設計師
  • 彩色TFT
  • 按鈕
  • 小麵包板
  • 電線
  • 行動電源
  • USB 轉串口轉換器

像往常一樣,本教程使用的所有組件都可以從隨附的連結中購買。 然而,只有當您想以獨立模式部署專案時才需要行動電源。

概要

  • 如前所述,我們將使用按鈕將 STM32F1 板連接到基於 ST1.8 的 7735 吋彩色 TFT 顯示器。
  • 按鈕將用於指示板開始計算。
  • 如下圖所示連接組件。

STM32F103C8T6-Minimum-System-Development-Board-fig-3

為了使連接易於複製,以下描述了 STM32 和顯示器之間的引腳對引腳連接。

STM32 – ST7735

STM32F103C8T6-Minimum-System-Development-Board-fig-4

再次檢查連接,確保一切都正常,因為這往往會變得有點棘手。 完成此操作後,我們繼續設定 STM32 板以使用 Arduino IDE 進行程式設計。

為 STM32 設定 Arduino IDE

  • 與大多數非 Arduino 製造的板子一樣,在板可以與 Arduino IDE 一起使用之前需要完成一些設定。
  • 這涉及到安裝板 file 透過 Arduino Board Manager 或從網路下載並複製 file進入硬體資料夾。
  • 板管理器路線是不太繁瑣的路線,由於 STM32F1 是列出的板之一,因此我們將採用該路線。 首先將 STM32 板的連結新增到 Arduino 首選項清單中。
  • 前往 File -> 首選項,然後輸入此內容 URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) 在如下所示的方塊中,然後按一下「確定」。

STM32F103C8T6-Minimum-System-Development-Board-fig-5

  • 現在轉到工具->董事會->董事會管理器,它將打開一個帶有搜尋欄的對話框。 搜尋 STM32F1並安裝相應的套件。

STM32F103C8T6-Minimum-System-Development-Board-fig-6

  • 安裝過程將需要幾秒鐘。 之後,該板現在應該可以在 Arduino IDE 板列表下進行選擇。

程式碼

  • 程式碼的編寫方式與我們為 Arduino 專案編寫任何其他草圖的方式相同,唯一的區別是引腳的引用方式。
  • 為了能夠輕鬆地開發該專案的程式碼,我們將使用兩個庫,它們都是標準 Arduino 庫的修改,以使它們與 STM32 相容。
  • 我們將使用 Adafruit GFX 和 Adafruit ST7735 函式庫的修改版本。
  • 這兩個庫都可以透過附加的鏈接下載。 像往常一樣,我將對程式碼進行簡短的分解。
  • 我們透過導入我們將使用的兩個庫來開始程式碼。

STM32F103C8T6-Minimum-System-Development-Board-fig-7

  • 接下來,我們定義 STM32 的接腳,LCD 的 CS、RST 和 DC 接腳所連接的接腳。

STM32F103C8T6-Minimum-System-Development-Board-fig-8

  • 接下來,我們建立一些顏色定義,以便稍後在程式碼中透過名稱而不是十六進位值輕鬆使用顏色。

STM32F103C8T6-Minimum-System-Development-Board-fig-9

  • 接下來,我們設定希望板經歷的迭代次數以及要使用的進度條的刷新持續時間。

STM32F103C8T6-Minimum-System-Development-Board-fig-10

  • 完成此操作後,我們建立了 ST7735 庫的一個對象,該對象將用於在整個專案中引用顯示器。
  • 我們還指出了按鈕所連接的 STM32 引腳,並建立一個變數來保存其狀態。

STM32F103C8T6-Minimum-System-Development-Board-fig-11

  • 完成此操作後,我們轉到 void setup() 函數。
  • 我們首先設定按鈕所連接的引腳的 pinMode(),啟動引腳上的內部上拉電阻,因為按鈕在按下時會接地。

STM32F103C8T6-Minimum-System-Development-Board-fig-12

  • 接下來,我們初始化串列通訊和螢幕,將顯示器背景設為黑色,並呼叫 print() 函數顯示介面。

STM32F103C8T6-Minimum-System-Development-Board-fig-13

  • 接下來是 void Loop() 函數。 由於使用了函式庫/函數,void 循環函數非常簡單且簡短。
  • 我們先讀取按鈕的狀態。 如果按鈕被按下,我們使用removePressKeyText()刪除螢幕上的當前訊息,並使用drawBar()函數繪製變化的進度條。
  • 然後我們呼叫開始計算函數來取得並顯示 Pi 的值以及計算它所花費的時間。

STM32F103C8T6-Minimum-System-Development-Board-fig-14

  • 如果未按下按鈕,裝置將保持空閒模式,螢幕要求按下按鍵才能與之互動。

STM32F103C8T6-Minimum-System-Development-Board-fig-15

  • 最後,在循環末尾插入延遲,以便在繪製“循環”之前留出一點時間。

STM32F103C8T6-Minimum-System-Development-Board-fig-16

  • 程式碼的其餘部分是調用的函數,以實現從繪製條形圖到計算 Pi 的任務。
  • 大多數這些功能已在涉及 ST7735 顯示器使用的其他幾個教程中介紹。

STM32F103C8T6-Minimum-System-Development-Board-fig-17STM32F103C8T6-Minimum-System-Development-Board-fig-18STM32F103C8T6-Minimum-System-Development-Board-fig-19STM32F103C8T6-Minimum-System-Development-Board-fig-20STM32F103C8T6-Minimum-System-Development-Board-fig-21STM32F103C8T6-Minimum-System-Development-Board-fig-22

  • 此專案的完整程式碼如下所示,並附在下載部分下。

STM32F103C8T6-Minimum-System-Development-Board-fig-23STM32F103C8T6-Minimum-System-Development-Board-fig-24 STM32F103C8T6-Minimum-System-Development-Board-fig-25 STM32F103C8T6-Minimum-System-Development-Board-fig-26 STM32F103C8T6-Minimum-System-Development-Board-fig-27 STM32F103C8T6-Minimum-System-Development-Board-fig-28 STM32F103C8T6-Minimum-System-Development-Board-fig-29 STM32F103C8T6-Minimum-System-Development-Board-fig-30 STM32F103C8T6-Minimum-System-Development-Board-fig-31 STM32F103C8T6-Minimum-System-Development-Board-fig-32 STM32F103C8T6-Minimum-System-Development-Board-fig-33 STM32F103C8T6-Minimum-System-Development-Board-fig-34

將程式碼上傳到STM32

  • 與標準 Arduino 相容板相比,將草圖上傳到 STM32f1 有點複雜。 要將程式碼上傳到開發板,我們需要一個基於 FTDI 的 USB 轉串口轉換器。
  • 將 USB 轉串埠轉換器連接到 STM32,如下圖所示。

STM32F103C8T6-Minimum-System-Development-Board-fig-35

這是連接的引腳到引腳圖

FTDI – STM32

  • 完成此操作後,我們將開發板狀態跳線的位置變更為位置一(如下圖所示),並將開發板置於程式模式。
  • 此後按一次板上的重置按鈕,我們就可以上傳程式碼了。

STM32F103C8T6-Minimum-System-Development-Board-fig-37

  • 在電腦上,請確保選擇“Generic STM32F103C board”並選擇串行作為上傳方法,然後您可以點擊上傳按鈕。

STM32F103C8T6-Minimum-System-Development-Board-fig-38

  • 上傳完成後,將狀態跳線改為位置 “哦” 這將使開發板處於“運行”模式,現在它應該根據上傳的程式碼開始運行。
  • 此時,您可以斷開 FTDI 並透過 USB 為開發板供電。 如果程式碼在通電後不運行,請確保您已正確恢復跳線並對電路板重新通電。

示範

  • 程式碼完成後,請按照上述上傳過程將程式碼上傳到您的設定。
  • 您應該會看到如下圖所示的顯示。

STM32F103C8T6-Minimum-System-Development-Board-fig-39

  • 按下按鈕開始計算。 您應該會看到進度條逐漸滑動直至結束。
  • 在該過程結束時,將顯示 Pi 的值以及計算所花費的時間。

STM32F103C8T6-Minimum-System-Development-Board-fig-40

  • 相同的程式碼在 Arduino Uno 上實作。 結果如下圖所示。

STM32F103C8T6-Minimum-System-Development-Board-fig-41

  • 比較這兩個值,我們發現「Blue Pill」比 Arduino Uno 快 7 倍以上。
  • 這使其成為涉及繁重處理和時間限制的項目的理想選擇。
  • 藍色藥丸的小尺寸也是優點tage 在這裡,因為它只比 Arduino Nano 大一點,並且可以在 Nano 速度不夠快的地方使用。

文件/資源

STM32 STM32F103C8T6最小系統開發板 [pdf] 使用者手冊
STM32F103C8T6最小系統開發板,STM32F103C8T6,最小系統開發板,系統開發板,開發板,板

參考

發表評論

您的電子郵件地址不會被公開。 必填欄位已標記 *