下面是我的配置函数,我在/*(2)*/执行完后,MSTR 和 SSM 位都为1. 但是当我执行完/*(3)*/后,SPE和MSTR都变成0了。不知道什么原因。 void MX_SPI2_Config(void) { /* Enable theperipheral clock SPI2 */ RCC->APB1ENR |=RCC_APB1ENR_SPI2EN; /* Configure SPI2 inmaster */ /* nSS hard, slave,CPOL and CPHA at zero (rising first edge), 8-bit */ /* (1) RXNE IT */ /* (2) NSS_SOFT,MASTER MODE */ /* (3) Enable SPI2*/ SPI2->CR2 =SPI_CR2_TXEIE | SPI_CR2_RXNEIE; /* (1) */ SPI2->CR1 =SPI_CR1_MSTR | SPI_CR1_SSM;/* (2) */ SPI2->CR1 |=SPI_CR1_SPE;/* (3) */ /* Configure IT */ /* (3) Set priorityfor SPI2_IRQn */ /* (4) EnableSPI2_IRQn */ NVIC_SetPriority(SPI2_IRQn, 1); /* (3) */ NVIC_EnableIRQ(SPI2_IRQn); /* (4) */ }
|