這一篇要實作使用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的欄,列設定為暗
}


張貼留言