1

MAX7219チップを搭載したLED 8x8マトリックスに表示するデータを送信したいと思います。

私の MCU は ARM STM32F4 で、この周辺機器をプログラムするための開発ツールとして MikroC を使用しています。

私はこのプログラミング方法の初心者なので、MCU から LED マトリックスにテキストを送信する方法を知りたいです。

いくつかのコードを書きましたが、MCU の電源を入れると 64 個の LED がすべて常に点灯していますが、その理由がわかりません。

// MCU's CS/PE11 pin
sbit Chip_Select at ODR11_GPIOE_ODR_bit;

void main() {
// Set PE11 as output pin (ChipSelect pin)
GPIO_Digital_Output(&GPIOE_BASE, _GPIO_PINMASK_11);

// Initialization method from SPI library from mikroC 
SPI2_Init();

  while (1) {
        // select led matrix
        Chip_Select = 0;

        // sending data to matrix
        SPI2_Write(0x01FF);

        // deselect led matrix
        Chip_Select = 1;
        Delay_ms(500);
  }
} 

誰かが私がこれに慣れるのを手伝ってくれることを願っています.

前もって感謝します!

4

1 に答える 1

1

MAX7219は使用前に初期化する必要があります。私はそれを忘れていたので、これは私の作業コードです:

void max7219_init() {
GPIO_Digital_Output(&GPIOE_BASE, _GPIO_PINMASK_11);

Chip_Select2 = 0;               // SELECT MAX
SPI2_Write(0x09);               // No decoding
SPI2_Write(0x00);
Chip_Select2 = 1;               // DESELECT MAX

Chip_Select2 = 0;               // SELECT MAX
SPI2_Write(0x0A);
SPI2_Write(0x01);               // Segment luminosity intensity
Chip_Select2 = 1;               // DESELECT MAX

Chip_Select2 = 0;               // SELECT MAX
SPI2_Write(0x0B);
SPI2_Write(0x07);               // Display refresh
Chip_Select2 = 1;               // DESELECT MAX

Chip_Select2 = 0;               // SELECT MAX
SPI2_Write(0x0C);
SPI2_Write(0x01);               // Turn on the display
Chip_Select2 = 1;               // DESELECT MAX

Chip_Select2 = 0;               // SELECT MAX
SPI2_Write(0x00);
SPI2_Write(0xFF);               // No test
Chip_Select2 = 1;               // DESELECT MAX
}
于 2016-12-14T21:34:05.383 に答える