void SPI_init(void)
{
// SPI2 init
RCC->APB1ENR |= RCC_APB1ENR_SPI2EN; // такты на SPI2
GPIOB->CRH &= (~(GPIO_CRH_CNF13_0 | GPIO_CRH_CNF15_0)); //настройка выводов для SPI
GPIOB->CRH |= (GPIO_CRH_MODE13 | GPIO_CRH_MODE15
| GPIO_CRH_CNF13_1 | GPIO_CRH_CNF15_1); // AF Push-Pull out
SPI2->CR1 |= SPI_CR1_BR_1 //настройка делителя
// | SPI_CR1_BR_0 //комментируя или раскомментируя эти строки можно изменять значение делителя
// | SPI_CR1_BR_2
| SPI_CR1_SSM // программное управление слэйвом
| SPI_CR1_SSI // при программном управлении слэйвом данный бит должен быть 1
| SPI_CR1_MSTR // Режим мастера
| SPI_CR1_SPE; // разрешить SPI2
SPI2->CR2 |= SPI_CR2_RXDMAEN // разрешить передачу принятых данных через DMA
| SPI_CR2_TXDMAEN; // Разрешить принимать данные для передачи через DMA
return;
}
Страницы
▼
Страницы
▼
Комментариев нет:
Отправить комментарий