Moin, mit folgenden Zeilen initialisiere ich meine SPI:
1 | oSPI->CR1 = 0; |
2 | oSPI->CR2 = 0; |
3 | oSPI->CR2 |= (0b0111ul << 8); //8Bit |
4 | oSPI->CR2 |= SPI_CR2_SSOE; |
5 | oSPI->CR1 |= SPI_CR1_SSM; |
6 | oSPI->CR1 |= SPI_CR1_SSI; |
7 | //oSPI->CR1 |= SPI_CR1_LSBFIRST;
|
8 | //oSPI->CR1 |= SPI_CR1_CPHA;
|
9 | //oSPI->CR1 |= SPI_CR1_CPOL;
|
10 | oSPI->CR1 |= SPI_CR1_MSTR; |
11 | oSPI->CR1 |= (6ul<<3); //Takt durch 128 (prescaler) |
12 | oSPI->CR1 |= SPI_CR1_SPE; |
Wenn ich nun probeweise im Sekundentakt ein Byte raussenden möchte, sehe ich 17 Takte auf der SPI Leitung - egal welche Bitbreite ich in CR2 eintrage? Warum ist das so? Ist der Prozessor buggy? Es ist ein STM32F070.
