реклама на сайте
подробности

 
 
> STM32F103 SPI2
Григорий Ревзин
сообщение Mar 4 2012, 18:23
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 13-01-12
Пользователь №: 69 376



Ребят, такое дело.
Инициализирую SPI2 нижеприведенным кодом. Начинаю пихать туда в цикле значения с задержкой в пару секунд, прерывание TXE срабатывает, но на линиях выхода абсолютно глухо (смотрел осциллографом). Порты проверил отдельно, работают, если тупо выставить высокий уровень через GPIOB->BSRR. В чем может быть дело? Несколько раз всё перепроверял. Значение бита SSI никак не влияет на уровень на линии CS. Заранее большое спасибо.
Код инициализации:

CODE
SET_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPBEN | RCC_APB2ENR_AFIOEN);
// Включение тактования SPI2.
SET_BIT(RCC->APB1ENR, RCC_APB1ENR_SPI2EN);

// Включение портов SPI:
// PB12 AFO Push-Pull @ 50 МГц (CS)
SET_BIT(GPIOB->CRH, GPIO_CRH_MODE12_0 | GPIO_CRH_MODE12_1 | GPIO_CRH_CNF12_1);
// PB13 AFO Push-Pull @ 50 МГц (SCK)
SET_BIT(GPIOB->CRH, GPIO_CRH_MODE13_0 | GPIO_CRH_MODE13_1 | GPIO_CRH_CNF13_1);
// PB14 AFI Pull-up (MISO)
SET_BIT(GPIOB->CRH, GPIO_CRH_CNF14_1);
// PB14 Pull-up.
SET_BIT(GPIOB->ODR, GPIO_ODR_ODR14);
// PB15 AFO Push-Pull @ 50 МГц (MOSI)
SET_BIT(GPIOB->CRH, GPIO_CRH_MODE15_0 | GPIO_CRH_MODE15_1 | GPIO_CRH_CNF15_1);

// Разрешаем прерывание по приёму и передаче.
SET_BIT(SPI2->CR2, SPI_CR2_RXNEIE | SPI_CR2_SSOE | SPI_CR2_TXEIE);

// SPI Baud = 36 / 4 = 9 МГц(BR = 0b001)
// Приводим поляроность сихнонизирующего сигнала в соотв. с инструкцией AD7799.
// Заставоем отправлять последний бит сначала.
// Включаем ведущего. Зажимаем Chip Select вниз (больше никого нет).
// Включаем часики.
// Включаем автомат SPI.
// По умолчанию размер пакета - 1Б.
SET_BIT(SPI2->CR1, SPI_CR1_CPOL | SPI_CR1_LSBFIRST | SPI_CR1_MSTR | SPI_CR1_SSM | SPI_CR1_SSI | SPI_CR1_BR_0 | SPI_CR1_SPE);

// Разрешаем прерывание.
NVIC_EnableIRQ(SPI2_IRQn);


Код, пихающий значения:
CODE

while (1) {
Delay(10000000);
SPI2->DR = 0xF;
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 16:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01322 секунд с 7
ELECTRONIX ©2004-2016