Norty304 писал(а): ↑11 апр 2024, 16:10
Добрый день, может кто-нибудь помочь разобраться как запустить SPI в прерываниях, камень преткновения какой-то, в примерах не вижу подобного, сам не могу осилить который день.
Если вопрос в том, чтобы настроить прерывания от SPI, тогда нужно при инициализации записать в регистр IMSC маску прерываний (установить биты необходимых для работы прерываний). А также разрешить прерывания от SPI в контроллере прерываний Энвик. Например, при записи Энвик_EnableIRQ(SPI_RX_IRQn); будут разрешены прерывания от приемного буфера SPI.
С помощью битовых полей TXIFLSEL и RXIFLSEL регистра CR1 можно задать величину порога опустошения передающего и наполнения приемного буферов, после которой будет сгенерировано прерывание.
В программе обработчике прерываний необходимо будет произвести запись в регистр ICR для сброса прерывания.
Следует с осторожностью разрешать прерывания от передающего буфера, поскольку может начаться непрерываная генерация прерываний до тех пор, пока в передающем буфере не будет записано необходимое количество слов данных (в соответствии со значением поля TXIFLSEL).
Подробное описание регистров SPI приведено в руководстве пользователя (Приложение А.11).