你好。
我正在尝试在我的
STM32F0 发现板上使用 STM32F051r8t6 micro 中的 SPI 接口。我让它发送数据,但我将数据长度设置为 8 位,它发送的是两倍(第一个 8 是我的数据,但第二个 8 位始终是 0x00)。当我将它设置为 4 位时,它发送 8 位(前 4 位是我的数据,后 4 位是 0x0)。我缺少什么?那是CRC的事吗?
- SPI1->CR1 &= ~((SPI_CR1_CPHA) | (SPI_CR1_CPOL) | (SPI_CR1_CRCEN)); //set phase and polarity to 0
- SPI1->CR1 |= (SPI_CR1_MSTR) | (SPI_CR1_BR_1) | (SPI_CR1_SSM ) | (SPI_CR1_SSI); //set spi to master and clock to /8 and software slave to 1
- SPI1->CR2 = (SPI1->CR2 & (~SPI_CR2_DS)) | (SPI_CR2_DS_2) | (SPI_CR2_DS_1) | (SPI_CR2_DS_0); //spi 8-bit
- SPI1->CR1 |= (SPI_CR1_SPE); //turn on spi
- SPI1->DR = 0xaa;
在 8 位选择: