MAX7219, 8-digit 7 segment LED display SPI programming
Could some one help me in making SPI C-program of MAX7219, 8 digit 7 segment display using STM32F401RE
.
i have written this code in arm keil (µVision 5) it is not working, could someone help me please:
#include"stm32f4xx.h"
#include<stdio.h>
#include<string.h>
void Led_write (char data);
void delayMs(int n);
int main (void)
{
char num[] = {0x7e,0x60,0x6d,0x78,0x33,0x5b,0x5f,0x70,0x7f,0x7b};
RCC->AHB1ENR |= 0x0001;
RCC->AHB2ENR |= 0x1000;
GPIOA->MODER &= ~0xcf00;
GPIOA->MODER |= 0x8900;
GPIOA->AFR[0] &= ~0xf0f00000;
GPIOA->AFR[0] |= 0x50500000;
SPI1->CR1 = 0x031c;
SPI1->CR2 = 0x00;
SPI1->CR1 |= 0x40;
while(1)
{
for(int i=0;i<10;i++)
{
Led_write(num[i]);
delayMs(100);
}
}
}
void Led_write (char data)
{
while(!(SPI1->SR & 2));
GPIOA->BSRR = 0x00100000;
SPI1->DR = 0x0900 | data;
while(SPI1->SR & 0x80);
GPIOA->BSRR = 0x00000010;
}
void delayMs(int n)
{
for (int i=0;i<n;i++)
for (int j=0;j<3195;i++);
}
