При установке флага SPE, сбрасывается флаг MSTR в регистре SPI_CR1 контроллера STM32L151VBT6. В результате SPI не работает. В чем может быть проблема?
Код
void SPI_Config() {
RCC_APB2ENR|=
0<<14|//USART1EN:
1<<12|//SPI1EN: 1-разр.SPI1
0<<11|//SDIOEN:
0<< 9|//ADC1EN:
0<< 4|//TIM11EN:
0<< 3|//TIM10EN:
0<< 2|//TIM9EN:
0<< 0;//SYSCFGEN:
GPIOA_AFRL|=
5<<28|//7 вывод
5<<20;//5 вывод
ConfPort_UltraLowPower(A, 7, cAlter, cPpull, cOut10MH, cNoPud); //SDA индикатора
//SDA_HI;
ConfPort_UltraLowPower(A, 5, cAlter, cPpull, cOut10MH, cPulDow); //SCL индикатора
//SCL_LO;
SPI1_I2SCFGR&= (ushort)~0x800;
SPI1_CR1=
0<<15| //BIDI MODE: 1-передача только в одну сторону
1<<14| //BIDI OE: 1-вывод включен (только передача)
0<<13| //CRC EN: 0-CRC не считать
0<<12| //CRC NEXT: 0-передача без CRC
0<<11| //DFF: 0- режим 8бит, 1- режим 16бит (SPE=0 надо запрещать)
0<<10| //RX ONLY: 0-режим передача и прием
1<< 9| //SSM: 0-режим slave запрещен
0<< 8| //SSI:
0<< 7| //LSB: FIRST 0-начинать со старш.бита
0<< 6| //SPE: 1-разрешение SPI
1<< 3| //BR[2:0] 0-clk:2, 1-clk:4
1<< 2| //MSTR: 1-мастер
0<< 1| //CPOL
0<< 0; //CPHA
//SPI1_I2SPR= 7;
SPI1_CR1|= 0x40; //SPE: 1-разрешение SPI
}