ARM STM32 MikroC上带MAX7219的LED 8x8矩阵

ARM STM32 MikroC上带MAX7219的LED 8x8矩阵,arm,stm32,spi,mikroc,Arm,Stm32,Spi,Mikroc,我想发送一些数据,以便在带有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

我想发送一些数据,以便在带有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);
  }
} 
希望有人能帮我更熟悉这个


提前谢谢

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
}

听起来您需要阅读该显示的数据表。如果你每半秒钟重复发送一次“打开所有LED”命令,那么所有LED都打开就不会太令人惊讶了。。。