首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MAX7219在ARM STM32 MikroC上的LED 8x8矩阵

MAX7219在ARM STM32 MikroC上的LED 8x8矩阵
EN

Stack Overflow用户
提问于 2016-12-14 01:17:54
回答 1查看 2.1K关注 0票数 1

我想发送一些数据,以显示它的LED 8x8矩阵,其中有MAX7219芯片在它。

我的单片机是ARM STM32F4,我用MikroC作为开发工具来编写这个外围设备。

我完全是初学者,这种方式的编程,所以我想知道是如何发送文本,即做从单片机到LED矩阵。

我写了一些代码,当我打开我的单片机时,所有的64个LED都在不停地发光,我不知道为什么。

代码语言:javascript
复制
// 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);
  }
} 

希望有人能帮我更熟悉这件事。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-14 21:34:05

MAX7219必须在使用前由初始化。我忘了,所以这是我的工作代码:

代码语言:javascript
复制
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
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41133261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档