Добрый день уважаемые! Прошу помощи в запуске каскада. Одна микросхема работает нормально, при подключении второй информация на индикаторах дублируется или две цифры накладываются друг на друга (одна ярче вторая тусклее).
инициализация SPI
инициализация GPIO
инициализация MAX7219
отправка данных
Добавлено after 1 hour 7 minutes 15 seconds:
соединены так

инициализация SPI
Спойлер
Код: Выделить всё
SPI_InitTypeDef SPIConf;
SPIConf.SPI_Direction = SPI_Direction_1Line_Tx;
SPIConf.SPI_Mode = SPI_Mode_Master;
SPIConf.SPI_DataSize = SPI_DataSize_16b;
SPIConf.SPI_CPOL = SPI_CPOL_Low;
SPIConf.SPI_CPHA = SPI_CPHA_1Edge;
SPIConf.SPI_NSS = SPI_NSS_Soft | SPI_NSSInternalSoft_Set;
SPIConf.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;
SPIConf.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_Init(SPI1, &SPIConf);
SPI_Cmd(SPI1, ENABLE);Спойлер
Код: Выделить всё
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_SPI1, ENABLE);
GPIO_InitTypeDef PORT;
PORT.GPIO_Pin = SCK_Pin | MOSI_Pin;
PORT.GPIO_Speed = GPIO_Speed_2MHz;
PORT.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &PORT);
PORT.GPIO_Pin = SS_Pin;
PORT.GPIO_Speed = GPIO_Speed_2MHz;
PORT.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &PORT);Спойлер
Код: Выделить всё
SPISend(OP_DISPLAYTEST,0);
SPISend(OP_SHUTDOWN,1);
SPISend(OP_SCANLIMIT, SCANLIMIT);
SPISend(OP_DECODEMODE,DECODEMODE);
SPISend(OP_INTENSITY, 1);Спойлер
Код: Выделить всё
for(;;){
GPIO_ResetBits(GPIOA, SS_Pin);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
SPISend(OP_DIGIT7, 8);
SPISend(OP_NOOP, 0x0000 );
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
GPIO_SetBits(GPIOA, SS_Pin);
GPIO_ResetBits(GPIOA, SS_Pin);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
SPISend(OP_DIGIT7, 1);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
GPIO_SetBits(GPIOA, SS_Pin);}соединены так

