這一篇要實作使用MAX7219模組控制8x8 LED,想將先前在Arduino做的,改成使用STM32利用MAX7219 這個IC來控制8x8LED,可參考 Arduino筆記(14):使用MAX7219 控制 8x8 LED Matrix。本文將繼續使用 LcdControl 程式庫用在 STM32上,讓8x8的LED隨機閃爍。
[安裝程式庫Library]
本實作需要安裝以下程式庫:直接到 Arduino IDE 功能表選單,選擇 [草稿碼 Sketch] → [匯入程式庫 Include Library] → [ 管理程式庫 Manage Libraries...],在出現的視窗搜尋處輸入 LedControl,如以下畫面,按下安裝即可。
程式庫(Library)安裝方法請參考另一篇文章: Arduino筆記:安裝 Arduino IDE 程式庫(Library)。
[材料]
- STM32F103C8T6 開發板
- USB轉TTL序列傳輸線 CP2102
- 8x8 LED 顯示器
- MAX7219 模組
- 排線 n 條
[接線圖]
CP2102 | STM32F103C8T6 | MAX7219模組 |
---|---|---|
GND | GND | GND |
3V3 | 3.3V | - |
RX | PA9 | - |
TX | PA10 | - |
- | 5V | VCC |
- | PA7 | DIN |
- | PA8 | CS |
- | PA5 | CLK |
[程式]
#include <LedControl.h> // PA7:Data in, PA5: Clock, PA8: CS(Load) LedControl lc=LedControl(PA7,PA5,PA8,1); void setup() { lc.shutdown(0,false); // 關閉省電模式 lc.setIntensity(0,8); // 設定亮度為 8 (介於0~15之間) lc.clearDisplay(0); // 清除螢幕 } void loop() { int randNumber_col = random(8); int randNumber_row = random(8); lc.setLed(0,randNumber_col,randNumber_row,1); // 將Led的欄,列設定為亮 delay(5); lc.setLed(0,randNumber_col,randNumber_row,0); // 將Led的欄,列設定為暗 }
張貼留言