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